Python正则表达式前瞻性

时间:2016-05-19 03:40:00

标签: python-3.x

我有一个字符串:"aaadaa"和一个子字符串:"aa"。这里的问题是我想在实际字符串中找到子字符串的所有起点和终点。答案应该是ex:

的元组列表
(0, 1)  
(1, 2)
(4, 5)

我想我必须使用先行断言,但我不知道如何做同样的事情。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

如果aa匹配该组后,您可以匹配空组:

In [34]: [m.span() for m in re.finditer('(?=aa)', 'aaadaa')]
Out[34]: [(0, 0), (1, 1), (4, 4)]

然后只需更正结束位置(它应该等于start + len('aa') - 1):

In [35]: [(m.span()[0], m.span()[1] + 1) for m in re.finditer('(?=aa)', 'aaadaa')]
Out[35]: [(0, 1), (1, 2), (4, 5)]
相关问题