这是我第一次在这里提问,我是Python的初学者。我会把时间(小时和分钟)与文本中的天数相匹配。我写这句话是为了:
(([0-9]+.?[0-9]+(a|p)m)[(Mon|Tues|Wednes|Thurs|Fri|Satur|Sun)day]?)然而,它只匹配没有天数的时间。你能帮我一下吗?这句话有什么问题吗?非常感谢
发布于 2018-11-27 19:19:41
问题在[(Mon|Tues|Wednes|Thurs|Fri|Satur|Sun)day]?中,因为正如www.regular-expressions.info中所述
只能使用括号进行分组。方括号定义字符类,大括号由具有特定限制的量词使用。
因此,您需要更改括号的方括号:
((Mon|Tues|Wednes|Thurs|Fri|Satur|Sun)day)?最后的正则表达式应该如下所示:
(([0-9]+.?[0-9]+(a|p)m)((Mon|Tues|Wednes|Thurs|Fri|Satur|Sun)day)?)我做了一些改变来改进它:
((\d{1,2}:?\d{1,2}(a|p)m)((Mon|Tues|Wednes|Thurs|Fri|Satur|Sun)day)?)其中:
\d和[0-9]一样。{1,2}意味着前面的令牌应该出现1或2次。作为一个提示,您可以使用https://regex101.com构建正则表达式并对它们进行适当的测试。
https://stackoverflow.com/questions/53506337
复制相似问题