首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Python中匹配Regex中的任何一个或组?

如何在Python中匹配Regex中的任何一个或组?
EN

Stack Overflow用户
提问于 2015-12-22 21:20:54
回答 2查看 379关注 0票数 1

我有这个大梁。

代码语言:javascript
运行
复制
([01]?[0-9]+:?[0-9]*(?:[AP]M)?)\s?(?:-|TO)\s?([01]?[0-9]+:?[0-9]*(?:[AP]M)?)

它可以用来捕捉时间和时间。

代码语言:javascript
运行
复制
8-8:30AM MON TUES THURS FRI
NO PARKING (SANITATION BROOM SYMBOL) 7AM-7:30AM EXCEPT SUNDAY

但是,我希望它能够捕获数字或单词MIDNIGHT

代码语言:javascript
运行
复制
NO PARKING (SANITATION BROOM SYMBOL) MOON & STARS (SYMBOLS) TUESDAY FRIDAY MIDNIGHT-3AM

我该怎么做。到目前为止,这就是我所掌握的。

https://regex101.com/r/fC0lI5/7

以下是我的输入

代码语言:javascript
运行
复制
NO PARKING (SANITATION BROOM SYMBOL) MOON & STARS (SYMBOLS) TUESDAY FRIDAY MIDNIGHT-3AM

我希望第一组是MIDNIGHT,第二组是3AM

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-22 21:49:24

您可以使用以下正则表达式:

代码语言:javascript
运行
复制
(MIDNIGHT|[01]?[0-9]+:?[0-9]*(?:[AP]M)?)\s*(?:-|TO)\s*(MIDNIGHT|[01]?[0-9]+:?[0-9]*(?:[AP]M)?)

请参阅regex演示

我只是将MIDNIGHT移动到第一个和第二个捕获组中作为替代,并在TO或连字符的两侧用*量词代替了? (以防出现多个空格)。

票数 2
EN

Stack Overflow用户

发布于 2015-12-22 21:34:18

根据你已经发布的信息,你似乎只需要把午夜放在一个小组里。那么,你可能也想把这两种可能性组合在一起。如下所示:

代码语言:javascript
运行
复制
(([01]?[0-9]+:?[0-9]*(?:[AP]M)?)|(MIDNIGHT))?\s?(?:-|TO)\s?([01]?[0-9]+:?[0-9]*(?:[AP]M)?)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34424605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档