Skip to main content
 首页 » 编程设计

python之我的正则表达式从字符串中提取时间有什么问题

2025年05月04日20xiaohuochai

我试图想出一个正则表达式来从字符串中提取时间来构建应用程序。

这是我到目前为止所得到的。不知道我在这里做错了什么。

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

我可以得到一些字符串,但不能得到所有不同的变体。

([01]?[0-9]*:?[0-9]*[AP]M?)-([01]?[0-9]*:?[0-9]*[AP]M?) 
 
 
8-8:30AM MON TUES THURS FRI 
8-10:30AM MON TUES THURS FRI 
8:30AM-10:30AM MON TUES THURS FRI 
10:30AM-11:30AM MON TUES THURS FRI 
10:30AM-11:30AM MON TUES THURS FRI 
8AM-8:30AM 
10-11PM 

我想要的是两个捕获的组。所以我知道第一组是FROM时间,后面一组是TO时间。

请您参考如下方法:

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

只需将 AM 组件设为可选。参见演示。同时将第一部分设为 + 否则它将匹配空字符串。

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