在Python中对正则表达式进行分组

时间:2013-09-19 19:21:28

标签: python regex python-3.x

我遇到了问题。我正在试图弄清楚以下情况的正则表达式是什么,我希望匹配其中一个如果返回的话。

               ABC 1 or 
               ABC 1 0  or
               ABC 1 0 1  or 
               ABC 1 0 1 0 or etc

我正在尝试以下方法来实现这一点,但它只匹配第一个字符串(ABC 1)。

               regular expression: ABC (1|0)+

我一直试图解决这个问题很长一段时间,我似乎无法弄明白。有人可以帮忙吗?

由于

2 个答案:

答案 0 :(得分:2)

如果你想确定它是第一个1,然后是0,然后是另一个1,然后是0等,你可以使用它:

re.match(r'ABC(?: 1(?: 0|$))+$', s)

regex101 demo

编辑:如果您不关心订单,可以使用:

re.match(r'ABC(?: [01])+$', s)

答案 1 :(得分:0)

ABC1(01)*0?

ABC,然后是1,然后是零或更多0 1,最后是可选的0.假设你当然不需要空格。

如果你想在每个“部分”之后留出一个空格:

ABC 1( 0 1)*( 0)?