我试图想出一个正则表达式来从字符串中提取时间来构建应用程序。
这是我到目前为止所得到的。不知道我在这里做错了什么。
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 组件设为可选。参见演示。同时将第一部分设为 + 否则它将匹配空字符串。
