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

How to avoid grouping in regex

您好,我正在尝试解析像“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']

它会强制该组存在,但不会捕获 return 值。