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
在年之后
参见本演示: