标签: regex
我想提取正则表达式中不落后“ A”的数字。
对于textA123text,由于123位于A的后面,因此都不应该匹配。
textA123text
123
A
对于textBC123text,123应该匹配。
textBC123text
我发现像(?<!A)(\d)这样的负向后方无效。它与23中的textA123text相匹配,因为23在1之后。
(?<!A)(\d)
23
1
使用正则表达式有什么方法吗?
答案 0 :(得分:2)
除了对A使用负向后看,而且对\d使用负向后看,以确保您位于数字中的第一个字符,而不是A之前:
\d
(?<![A\d])\d+
https://regex101.com/r/jhWM30/1
答案 1 :(得分:2)
当然,只需在您的后置断言中添加\d:
(?<![A\d])(\d+)