【问题标题】:How to avoid grouping in regex如何避免在正则表达式中分组
【发布时间】:2017-04-16 19:50:08
【问题描述】:

您好,我正在尝试解析像 '2.2.2.2-22' 这样的字符串 在使用 python re.findall 函数时,我得到了两组: 我不明白 RE 有什么问题:

re.findall(r"([\d.]+(-\d+)?)",  "2.2.2.2-22")

这给了我结果: [('2.2.2.2-22', '-22')] 我不想要第二组。我怎样才能解决这个问题?

【问题讨论】:

标签: python regex regex-group


【解决方案1】:

为了避免分组,您可以使用?:

>>> import re
>>> re.findall(r"([\d.]+(?:-\d+)?)",  "2.2.2.2-22")
['2.2.2.2-22']

它将强制该组存在,但不会捕获并返回值。

【讨论】:

  • @hwnd 不会捕获字符串 OP 在之后
猜你喜欢
  • 1970-01-01
  • 2012-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-30
  • 2017-08-17
  • 1970-01-01
相关资源
最近更新 更多