【问题标题】:Grouping Regular Expression in Python在 Python 中对正则表达式进行分组
【发布时间】:2013-09-19 19:21:28
【问题描述】:

我遇到了问题。我试图弄清楚以下情况的正则表达式是什么,如果返回,我想匹配以下情况之一。

               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)+

我已经尝试了很长时间,但我似乎无法弄清楚。有人可以帮忙吗?

谢谢

【问题讨论】:

  • 您可能希望包含 空格 和 1 和 0 的组合?
  • ABC( (1|0))+ 也许?或者 ABC( 1 0)*( 1)? 如果您必须交替使用 0 和 1。
  • 我可能会尝试ABC(\s(1|0))+

标签: python regex python-3.x


【解决方案1】:

如果你想确保它首先是 1,然后是 0,然后是另一个 1,然后是 0,等等,你可以使用这个:

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

regex101 demo

编辑:如果你不关心订单,你可以使用这个:

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

【讨论】:

  • 谢谢,但我不想从 0 更改为 1。我只是有一个响应,其中有一个字符串和数字。
  • @user2796819 有人用正则表达式发布了一个答案以匹配任何订单,但他删除了他的答案,我不知道为什么:(无论如何,看看第二个正则表达式是否适用你!
【解决方案2】:

ABC1(01)*0?

ABC,然后是 1,然后是零个或多个 0 1,最后是可选的 0。当然,假设您不想要空格。

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

ABC 1( 0 1)*( 0)?

【讨论】:

  • 致反对者:我相信你错了。我理解这个问题的方式是,他想要“ABC”,然后是 1 和 0 的序列,交替出现,以 1 或 0 结尾。当然,我忽略了空格。
猜你喜欢
  • 2015-08-09
  • 2015-01-17
  • 1970-01-01
  • 2020-06-09
  • 2012-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多