python - 如何避免在正则表达式中分组

标签 python regex regex-group

你好,我正在尝试解析像“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')] 我不要第二组。我怎样才能解决这个问题?

最佳答案

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

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

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

关于python - 如何避免在正则表达式中分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40923098/

相关文章:

javascript - 如何使用 jQuery 打开一个链接,它的末尾有一个精确的模式?

用于传递 URL 和失败 CIDR 掩码的正则表达式

python - 单击Python中隐藏的输入Selenium

python - 将父子模型对象保存在一起

包含括号的 JavaScript 正则表达式模式

c++ - 捕获重复组的正则表达式

regex - 十进制数的正则表达式在Flutter TextFormField inputFormatters中不起作用

regex - Raku regex : How to know which group was captured at an alternation

Python - SQL更新表中所有行的有效方法

python - 类型错误 : expected a character buffer object # when i split