python简单的正则表达式帮助

时间:2011-05-10 07:54:28

标签: python regex

嗨第一次正则表达式用户在这里。 只是想弄清楚一些正则表达式,但需要一些帮助。

我有一个包含以下项目的文本文件:

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']

任何帮助搞清楚什么是错的?感谢!!!

1 个答案:

答案 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