提问者:小点点

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


我想使用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']

我如何修改它以获得所需的结果?


共1个答案

匿名用户

您可以省略外部捕获组,并对-使用非捕获组进行单个替换:

\d+ (?:to|-) \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']