Python []中的正则表达式捕获组

Python []中的正则表达式捕获组,python,regex,Python,Regex,我想使用python中的正则表达式提取所有看起来可能表示距离范围的数字 s = "3 to 6 km. 3 - 6 km" re.findall(r'(\d [(to)|\-] \d km)', s) # desired result ['3 to 6 km', '3 - 6 km'] # result: ['3 - 6 km'] 如何修改此选项以获得所需的结果?您可以省略外部捕获组,并使用一个单独的替代选项,将非捕获组用于to或-: 输出 ['3 to 6 km', '

我想使用python中的正则表达式提取所有看起来可能表示距离范围的数字

s = "3 to 6 km. 3 - 6 km"
re.findall(r'(\d [(to)|\-] \d km)', s)

# desired result ['3 to 6 km', '3 - 6 km']
# result: ['3 - 6 km']

如何修改此选项以获得所需的结果?

您可以省略外部捕获组,并使用一个单独的替代选项,将非捕获组用于to或-:

输出

['3 to 6 km', '3 - 6 km']
使用\d+?:到|-\d+km
import re

s = "3 to 6 km. 3 - 6 km"
print(re.findall(r'\d+ (?:to|-) \d+ km', s))
['3 to 6 km', '3 - 6 km']