使用正则表达式匹配两个条件

时间:2015-11-04 17:06:57

标签: python regex

我试图在两个给定条件下匹配输入字符串。例如,如果我将'000011001000'作为输入并希望通过'1001''0110'匹配,那么我需要的正则表达式是什么样的?

我尝试了不同的组合,但无法找到正确的组合。我得到的最接近的是使用

re.match("(1001.*0110)+?")

但是当输入例如'0001100100'时,那个不起作用。

1 个答案:

答案 0 :(得分:2)

此模式使用“look-arounds”,您应该了解正则表达式。

(?=[01]*1001[01]*)(?=[01]*0110[01]*)[01]+

回应评论:

正则表达式中的环视是检查特定条件匹配的简单方法。它本质上做的是当它碰到(?=(还有其他诸如?!, ?<=, and ?<!)令牌时停止当前匹配游标,并使用环视声明中的模式读取下一个字符。如果未满足该声明,则匹配失败。如果是,则原始光标继续匹配。想象一下,它是一个探测器,可以在探测器之前检查前方的环境。

如果你想要更多的参考,rexegg可能是我最喜欢的学习正则表达式语法和漂亮技巧的网站。