Python中的分组正则表达式

Python中的分组正则表达式,python,regex,python-3.x,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) 我想弄明白这件事已经有很长时间了,但我似乎弄不明白。有人能帮忙吗 谢谢ABC1(01)*0? ABC

我有个问题。我试图找出下面这种情况下的正则表达式是什么,如果返回,我想匹配下面的一个正则表达式

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

我想弄明白这件事已经有很长时间了,但我似乎弄不明白。有人能帮忙吗

谢谢

ABC1(01)*0?

ABC,然后是1,然后是0或更多0 1,最后是可选的0。当然,假设你不想要空白

如果您想在每个“零件”后面留一个空格:


abc1(01)*(0)?

如果要确保它首先是1,然后是0,然后是另一个1,然后是0等,您可以使用以下方法:

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

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

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

您可能希望包含空格、1和0的组合?
ABC((1 | 0))+
也许?或者
ABC(10)*(1)?
如果你必须交替使用0和1。我可能会尝试
ABC(\s(1 | 0))+
向下层选民说:我相信你错了。我理解这个问题的方式是,他想要“ABC”,然后是1和0的序列,交替,以1或0结尾。当然,我忽略了空格。谢谢,但我不想从0改为1。我有一个回复,其中有一个字符串和数字。@user2796819还有一个人发布了一个带有正则表达式的答案,以匹配任何顺序,但他删除了他的答案,我不知道为什么:(无论如何,看看第二个正则表达式是否适用于您!