如何避免在正则表达式中分组
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 值。
您好,我正在尝试解析像“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 值。