我在文本中输入了1556278013708
或34566
之类的数字。其中一些后跟"
,例如1556278013708"
我不需要后面跟着"
的数字,所以我尝试了(\d+)(?!")
,但这仍然与那些数字匹配,只是没有最后一位数字,例如155627801370
如何立即不使用"
捕获整数?
例如34567
-全部匹配
例如34567"
-全部都不匹配
我在文本中输入了1556278013708
或34566
之类的数字。其中一些后跟"
,例如1556278013708"
我不需要后面跟着"
的数字,所以我尝试了(\d+)(?!")
,但这仍然与那些数字匹配,只是没有最后一位数字,例如155627801370
如何立即不使用"
捕获整数?
例如34567
-全部匹配
例如34567"
-全部都不匹配
您可以改为使量词为所有格-这样,一旦引擎匹配了所有数字,一旦看到负前瞻失败,整个匹配将完全失败,而不是尝试回溯:
\d++(?!")
https://regex101.com/r/6bIqdI/1
(请注意,如果完全匹配是这些数字,则无需捕获组,只需提取整个匹配项即可)
,或者,放置单词边界也可以:
\d+\b(?!")
尽管在PCRE中使用possessive quantifier更为有效,但是此正则表达式可以在其他正则表达式平台(例如Javascript或Python也不支持++
的平台)中使用。