我遇到了问题。我正在试图弄清楚以下情况的正则表达式是什么,我希望匹配其中一个如果返回的话。
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)+
我一直试图解决这个问题很长一段时间,我似乎无法弄明白。有人可以帮忙吗?
由于
答案 0 :(得分:2)
如果你想确定它是第一个1,然后是0,然后是另一个1,然后是0等,你可以使用它:
re.match(r'ABC(?: 1(?: 0|$))+$', s)
编辑:如果您不关心订单,可以使用:
re.match(r'ABC(?: [01])+$', s)
答案 1 :(得分:0)
ABC1(01)*0?
ABC,然后是1,然后是零或更多0 1,最后是可选的0.假设你当然不需要空格。
如果你想在每个“部分”之后留出一个空格:
ABC 1( 0 1)*( 0)?