[已解决] 正则表达式提取字符串

[复制链接]
hev541959 发表于 2021-7-30 09:41:19
1.比如现在有一串字符:str= fsafdf  1324_fa '' __ F143 0x0000  fssdfd  42343fa  '' __ F143 0x00
2.想提取fsafdf开头 ,第一个0x0000(0x后面为多个零不固定)为结尾中间的所有字符串
3.regexp(str,'fsafdf.*0x[0-9]+','match')提取会直接提取到最后一个0x00

最佳答案


帕拉代斯 发表于 2021-7-30 14:12:53
hev541959 发表于 2021-7-30 10:13
想把0x[0-9]+作为整体限定出现一次就结束,不再往后提取,该如何写表达式呢? ...

如果希望匹配尽可能短的字符子串时,可以在使用的匹配字符串后使用  '?'
regexp(str,'fsafdf.*?0x[0-9]+','match')

3 条回复


hev541959 发表于 2021-7-30 10:13:03
想把0x[0-9]+作为整体限定出现一次就结束,不再往后提取,该如何写表达式呢?

帕拉代斯 发表于 2021-7-30 14:12:53
hev541959 发表于 2021-7-30 10:13
想把0x[0-9]+作为整体限定出现一次就结束,不再往后提取,该如何写表达式呢? ...

如果希望匹配尽可能短的字符子串时,可以在使用的匹配字符串后使用  '?'
regexp(str,'fsafdf.*?0x[0-9]+','match')
回复此楼

hev541959 发表于 2021-7-30 16:07:38
帕拉代斯 发表于 2021-7-30 14:12
如果希望匹配尽可能短的字符子串时,可以在使用的匹配字符串后使用  '?'
regexp(str,'fsafdf.*?0x[0-9]+' ...

谢谢!解决了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表