我有s = 'QMMQSM'
。我想回来['QMM']
。 重叠匹配计数。为什么这不起作用?
re.findall('(?=(\w(\w)\2))',s)
如果我有两个字符X和Y,我需要匹配XYY
或MOO
BOO
。
额外奖励:如何强制X不等于Y?
答案 0 :(得分:3)
print re.findall(r'(?=(\w(\w)\2))',s)
^^
您需要使用r
.Its raw方法。这会删除escaping
个问题。
或
print re.findall('(?=(\w(\w)\\2))',s)
^^
这将允许正则表达式访问python将处理的\2
。
re.findall(r"(?=((\w)(?!\2)(\w)\3))",s)
您可以使用它来强制执行X not equal to Y
。请参阅演示。