regex:获取组的所有匹配项

k4aesqcs  于 2022-12-14  发布在  其他
关注(0)|答案(2)|浏览(124)

在python中,我尝试从字符串中提取所有的时间范围(格式为HHmmss-HHmmss)。

text = "random text 0700-1300 random text 1830-2230 random 1231 text"
regex = "(.*(\d{4,10}-\d{4,10}))*.*"
match = re.search(regex, text)

这只返回1830-2230,但我想得到0700-13001830-2230。在我的应用程序中,文本字符串中可能有零个或任意数量的时间范围(在合理范围内)。我希望得到任何提示。

d4so4syb

d4so4syb1#

尝试使用re.findall查找所有匹配项(Regex demo.):

import re

text = "random text 0700-1300 random text 1830-2230 random 1231 text"
pat = r"\b\d{4,10}-\d{4,10}\b"

for m in re.findall(pat, text):
    print(m)

印刷品:

0700-1300
1830-2230
omhiaaxx

omhiaaxx2#

试试这个正则表达式。

(\d{4}-\d{4})

您只需要图案{four digts}减{ four digits}。不需要其他部分。

相关问题