尝试打印所有重叠匹配时出现正则表达式错误

时间:2016-03-25 14:34:39

标签: python

我已经看过几个如何实现重叠匹配的例子。答案似乎是前瞻性断言,所以我使用了它但是得到了一个错误(我在正则表达式上很弱,所以请原谅愚蠢的错误!)。

问题:找到字符串_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#中字符串#__#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#__#__#_________####_#_##__(即16对)的所有重叠匹配项。我可以看到至少有两场比赛。

这是我尝试过的代码:

import re
pattern = r'?=((_#){16})'
row='#__#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#__#__#_________####_#_##__'
re.finditer(pattern, row)

这引发了一个例外,说“没有什么可重复的”。请帮我理解我做错了什么。

1 个答案:

答案 0 :(得分:-1)

好笑,但我自己找到了。我在前瞻表达式周围缺少括号!它必须是(?=...)而不是?=...