嗨第一次正则表达式用户在这里。 只是想弄清楚一些正则表达式,但需要一些帮助。
我有一个包含以下项目的文本文件:
10:67 12:12 01:50 23:60 23:50
我正在尝试获取有效时间列表 输出应该是:
['12:12','01:50','23:50']
这是我的代码:
import re
inFile = open("text.txt")
text = inFile.read()
pattern = re.findall('([01]\d|2[0-3]):[0-5]\d', text)
print pattern
我的输出是:
['12','01','23']
任何帮助搞清楚什么是错的?感谢!!!
答案 0 :(得分:6)
Python显然只打印第一组(在你的情况下为([01]\d|2[0-3])
)。如果你创建了一个非捕获组((?: ... )
),你应该看到所需的结果:
text = '10:67 12:12 01:50 23:60 23:50'
pattern = re.findall('(?:[01]\d|2[0-3]):[0-5]\d', text)
print pattern
显示:
['12:12', '01:50', '23:50']
关于(非)捕获组的更多信息:http://www.regular-expressions.info/brackets.html