如何不使用正则表达式负前瞻捕获整个组

我在文本中输入了155627801370834566之类的数字。其中一些后跟",例如1556278013708"

我不需要后面跟着"的数字,所以我尝试了(\d+)(?!"),但这仍然与那些数字匹配,只是没有最后一位数字,例如155627801370

如何立即不使用"捕获整数?

例如34567-全部匹配

例如34567"-全部都不匹配

johnnysydney 回答:如何不使用正则表达式负前瞻捕获整个组

您可以改为使量词为所有格-这样,一旦引擎匹配了所有数字,一旦看到负前瞻失败,整个匹配将完全失败,而不是尝试回溯:

\d++(?!")

https://regex101.com/r/6bIqdI/1

(请注意,如果完全匹配是这些数字,则无需捕获组,只需提取整个匹配项即可)

,

或者,放置单词边界也可以:

\d+\b(?!")

尽管在PCRE中使用possessive quantifier更为有效,但是此正则表达式可以在其他正则表达式平台(例如Javascript或Python也不支持++的平台)中使用。

RegEx Demo

本文链接:https://www.f2er.com/2780177.html

大家都在问