组内部的反向引导在前瞻中

时间:2015-08-13 04:49:45

标签: python regex

我有s = 'QMMQSM'。我想回来['QMM']重叠匹配计数。为什么这不起作用?

re.findall('(?=(\w(\w)\2))',s)

如果我有两个字符X和Y,我需要匹配XYYMOO BOO。 额外奖励:如何强制X不等于Y?

1 个答案:

答案 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。请参阅演示。

https://regex101.com/r/uF4oY4/11