如何扩展此正则表达式以接受更多变化?

时间:2015-12-22 20:36:58

标签: python regex

我有这个正则表达式,它适用于我想要它做的事情。

([01]?[0-9]+:?[0-9]*(?:[AP]M)?)-?([01]?[0-9]+:?[0-9]*(?:[AP]M)?)

它捕捉得非常好。

NO PARKING (SANITATION BROOM SYMBOL) 7AM-7:30AM EXCEPT SUNDAY

但后来我在我的数据中发现了另一个案例

NO PARKING (SANITATION BROOM SYMBOL) 11:30AM TO 1PM THURS

使用TO分隔from_time和to_time。如何扩展该正则表达式以接受此案例?我试过了

([01]?[0-9]+:?[0-9]*(?:[AP]M)?)\s?-|TO\s??([01]?[0-9]+:?[0-9]*(?:[AP]M)?)

没有运气。

1 个答案:

答案 0 :(得分:3)

在你的表达中,两个选择是:

([01]?[0-9]+:?[0-9]*(?:[AP]M)?)\s?-
TO\s??([01]?[0-9]+:?[0-9]*(?:[AP]M)?)

要将其设为-TO,请将它们放入非捕获组:

([01]?[0-9]+:?[0-9]*(?:[AP]M)?)\s?(?:-|TO)\s?([01]?[0-9]+:?[0-9]*(?:[AP]M)?)