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