python中所有格量词的替代方案
我试图匹配所有出现的字符串python中所有格量词的替代方案,python,regex,quantifiers,Python,Regex,Quantifiers,我试图匹配所有出现的字符串文章,后面跟一个数字(单个或多个数字),后面不跟一个左括号。在Sublime文本中,我使用以下正则表达式: Article\s[0-9]++(?!\() 要搜索以下字符串: Article 29 Article 30(1) 这与第30(1)(正如我所期望的)条不匹配,但与第29条和第1条不匹配 在Python(3)中尝试使用 在使用Python正则表达式不支持的(嵌套的)所有格量词时,我遇到了以下错误。有什么方法可以匹配Python中我希望(不希望)匹配的内容吗?P
文章
,后面跟一个数字(单个或多个数字),后面不跟一个左括号。在Sublime文本中,我使用以下正则表达式:
Article\s[0-9]++(?!\()
要搜索以下字符串:
Article 29
Article 30(1)
这与第30(1)
(正如我所期望的)条不匹配,但与第29条和第1条不匹配
在Python(3)中尝试使用
在使用Python正则表达式不支持的(嵌套的)所有格量词时,我遇到了以下错误。有什么方法可以匹配Python中我希望(不希望)匹配的内容吗?Pythonre
不支持所有格量词。您可以考虑使用,以支持这种类型的量词。或者使用以下解决方法
您需要将数字添加到前瞻:
Article\s[0-9]+(?![(0-9])
^^^
看
或者,使用单词边界:
Article\s[0-9]+\b(?!\()
^
请参阅。您还可以使用(?>)\1
变通方法,围绕要匹配的内容模拟原子组
(?=(Article\s[0-9]+))\1(?!\()
(向前看的行为很自然,就像一个原子组,您只需要一个捕获和一个反向引用)
(?=(Article\s[0-9]+))\1(?!\()