负前瞻匹配

时间:2013-12-06 19:12:28

标签: python regex

我有这个字符串:

maria 10 years maria 10 maria10 maria10 years 

当下一个字不是maria时,我希望匹配10后跟years。我试过这样:

\maria\s?[0-9]+(?!years)

但即使下一个字是maria 10

,它也会匹配year

2 个答案:

答案 0 :(得分:2)

您刚忘记years之前的空格:

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']

答案 1 :(得分:0)

这应该有效:

maria\s*[0-9]+\s+(?!years)

由于years不会立即跟"maria 10"(有空格)

演示:http://regex101.com/r/dI2lA1

相关问题