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

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

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组件设置为可选,请参见demo。也请使第一部分+否则将匹配空字符串。

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

关于python - 我的正则表达式从字符串中提取时间有什么问题?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34422842/

10-12 13:00