我有一个字符串:"aaadaa"
和一个子字符串:"aa"
。这里的问题是我想在实际字符串中找到子字符串的所有起点和终点。答案应该是ex:
(0, 1)
(1, 2)
(4, 5)
我想我必须使用先行断言,但我不知道如何做同样的事情。
有人可以帮助我吗?
答案 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)]