从字符串中删除时间表达式

时间:2017-04-12 12:20:18

标签: python regex string time

我正在编写函数时遇到问题。目标是将一个字符串作为输入:

即。 '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搜索时间模式。然而,我无法让它发挥作用。

有人有任何提示吗?

1 个答案:

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

Regex Example