Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.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 - Fatal编程技术网

Python 负前瞻匹配

Python 负前瞻匹配,python,regex,Python,Regex,我有这个字符串: maria 10 years maria 10 maria10 maria10 years 如果下一个单词不是years,则要匹配maria,后跟10。我试着这样做: \maria\s?[0-9]+(?!years) 但是它与maria 10相匹配,即使下一个单词是年,这应该可以: maria\s*[0-9]+\s+(?!years) 因为years不会紧接着“maria 10”(有一个空格) 演示:您刚刚忘记了年前的空间: In [1]: import re In [

我有这个字符串:

maria 10 years maria 10 maria10 maria10 years 
如果下一个单词不是
years
,则要匹配
maria
,后跟
10
。我试着这样做:

\maria\s?[0-9]+(?!years)
但是它与maria 10相匹配,即使下一个单词是年,这应该可以:

maria\s*[0-9]+\s+(?!years)
因为
years
不会紧接着
“maria 10”
(有一个空格)


演示:您刚刚忘记了
年前的空间

In [1]: import re
In [2]: s = "maria 10 years maria 10 maria10 maria10 years"
In [3]: re.findall(r"(\maria\s?[0-9]+)\s(?!years)", s)
Out[3]: ['maria 10', 'maria10']

它在这里不起作用。。。你对空白的看法是对的。。。在这种情况下,您知道为什么\maria\s?[0-9]+(?!\syears)不起作用吗?谢谢不使用Python
re
模块,他们不会使用。@user2950162:编辑正则表达式并添加正则表达式demo@sudo_O:即
maria 10
年之后
参见本演示: