嘿,我需要一个正则表达式来处理以下情况:
- von 08:00-12:00uhr und 12:00-22:00 uhr
- von 08:00-12:00 uhr
- von 08:00-12:00 uhr
- von 08:00-12:00
- 08:00-12:00
所以正则表达式应该处理这样的输入:
(von)?_?0?[0-23]:[00-59]_?(Uhr|uhr)?((bis)?_?0?[0-23]:[00-59]_?(Uhr|uhr))?
我尝试了很多但是在wiki上阅读后的最佳匹配是:
(von)?([01]\d|2[0-3]):?([0-5]\d)$(uhr|Uhr)?((und)?(von)?([01]\d|2[0-3]):?([0-5]\d)$)
你能告诉我如何处理这个问题吗?我测试Dateformat的方式是正确的吗?
答案 0 :(得分:1)
这似乎有效:
(von )?([01]\d|2[0-3]):[0-5]\d-([01]\d|2[0-3]):[0-5]\d( ?uhr)?( und ([01]\d|2[0-3]):[0-5]\d-([01]\d|2[0-3]):[0-5]\d( ?uhr)?)?
空格由实际空格字符匹配,\s
不仅匹配ascii空间,还匹配大多数类型的空格(例如,也包括标签)。
答案 1 :(得分:0)
答案 2 :(得分:0)
我假设您的第一个示例是错误,它应该是
von 08:00-12:00 uhr und 12:00-22:00 uhr
而不是
von 08:00-12:00uhr和12:00-22:00 uhr
这是我提出的快速解决方案。但是,有一个改进的地方,使用空格字符而不是''(空格)。
(von )?(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]-(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]( uhr)?( und (0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]-(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9] uhr)?
注意:解决方案基于最高投票答案 Regular expression for matching HH:MM time format