Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中所有格量词的替代方案_Python_Regex_Quantifiers - Fatal编程技术网

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中我希望(不希望)匹配的内容吗?

Python
re
不支持所有格量词。您可以考虑使用,以支持这种类型的量词。或者使用以下解决方法

您需要将数字添加到前瞻:

Article\s[0-9]+(?![(0-9])
                    ^^^   

或者,使用单词边界:

Article\s[0-9]+\b(?!\()
                ^

请参阅。

您还可以使用
(?>)\1
变通方法,围绕要匹配的内容模拟原子组

(?=(Article\s[0-9]+))\1(?!\()
(向前看的行为很自然,就像一个原子组,您只需要一个捕获和一个反向引用)

(?=(Article\s[0-9]+))\1(?!\()