当前位置:  开发笔记 > 开发工具 > 正文

正则表达式匹配任意长度的数字字符串,其前面可能有也可能没有前面的0x

如何解决《正则表达式匹配任意长度的数字字符串,其前面可能有也可能没有前面的0x》经验,为你挑选了1个好方法。

我想知道你是否可以帮助我制定一个正则表达式来匹配以下模式?

任意长度的任意数字字符串,可以是0x,也可以不是0x.



1> Tomalak..:

像这样的东西:

\b(?:0x)?\d+\b

或者,如果"0x"要从匹配中排除可选项:

(?:(?<=\b0x)|\b)\d+\b

前者是:

- a word boundary
- "0x", optional
- decimal digits, at least one
- a word boundary

后者将是:

- choose
  - either a position preceded by
     - a word boundary
     - "0x"
  - or a word boundary
- decimal digits, at least one
- a word boundary

后者匹配:

- 123456
- 0x123456

但不是:

- 0y123456

要匹配十六进制数字(如"0x"所示),请使用[0-9A-Fa-f]代替"\d".

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有