像这样的东西:
\b(?:0x)?\d+\b
Run Code Online (Sandbox Code Playgroud)
或者,如果"0x"要从匹配中排除可选项:
(?:(?<=\b0x)|\b)\d+\b
Run Code Online (Sandbox Code Playgroud)
前者是:
- 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".