我正在编写函数时遇到问题。目标是将一个字符串作为输入:
即。 'from 16:00-17:00 we will be bowling and from 18:00-19:00 there is dinner'
它应该返回一个包含[16:00-17:00, 18:00-19:00]
我想使用regex
,并使用re.findall
搜索时间模式。然而,我无法让它发挥作用。
有人有任何提示吗?
答案 0 :(得分:0)
你应该学习how to ask a good question。但是既然我也在研究正则表达式,我也可以为你回答这个...
您可以使用模式:\d{2}\:\d{2}\-\d{2}\:\d{2}
\d{2}
匹配一个数字(等于[0-9]),出现2次\:
匹配字符:字面(区分大小写)\-
匹配字符 - 字面意思(区分大小写)<强>代码:强>
import re
strs = ['from 16:00-17:00 we will be bowling and from 18:00-19:00 there is dinner',
'from 12:00-14:00 we will be bowling and from 15:00-17:00 there is dinner',
'from 10:00-16:30 we will be bowling and from 18:30-18:45 there is dinner']
pat = '\d{2}\:\d{2}\-\d{2}\:\d{2}'
for s in strs:
times = re.findall(pat, s)
print(times)
<强>输出:强>
['16:00-17:00', '18:00-19:00']
['12:00-14:00', '15:00-17:00']
['10:00-16:30', '18:30-18:45']