我有这个大梁。
([01]?[0-9]+:?[0-9]*(?:[AP]M)?)\s?(?:-|TO)\s?([01]?[0-9]+:?[0-9]*(?:[AP]M)?)它可以用来捕捉时间和时间。
8-8:30AM MON TUES THURS FRI
NO PARKING (SANITATION BROOM SYMBOL) 7AM-7:30AM EXCEPT SUNDAY但是,我希望它能够捕获数字或单词MIDNIGHT。
NO PARKING (SANITATION BROOM SYMBOL) MOON & STARS (SYMBOLS) TUESDAY FRIDAY MIDNIGHT-3AM我该怎么做。到目前为止,这就是我所掌握的。
https://regex101.com/r/fC0lI5/7
以下是我的输入
NO PARKING (SANITATION BROOM SYMBOL) MOON & STARS (SYMBOLS) TUESDAY FRIDAY MIDNIGHT-3AM我希望第一组是MIDNIGHT,第二组是3AM
发布于 2015-12-22 21:49:24
您可以使用以下正则表达式:
(MIDNIGHT|[01]?[0-9]+:?[0-9]*(?:[AP]M)?)\s*(?:-|TO)\s*(MIDNIGHT|[01]?[0-9]+:?[0-9]*(?:[AP]M)?)请参阅regex演示
我只是将MIDNIGHT移动到第一个和第二个捕获组中作为替代,并在TO或连字符的两侧用*量词代替了? (以防出现多个空格)。
发布于 2015-12-22 21:34:18
根据你已经发布的信息,你似乎只需要把午夜放在一个小组里。那么,你可能也想把这两种可能性组合在一起。如下所示:
(([01]?[0-9]+:?[0-9]*(?:[AP]M)?)|(MIDNIGHT))?\s?(?:-|TO)\s?([01]?[0-9]+:?[0-9]*(?:[AP]M)?)https://stackoverflow.com/questions/34424605
复制相似问题