在字符串上进行preg_match,然后构建新的字符串

时间:2019-05-08 13:52:43

标签: php preg-replace preg-match

我有以下字符串:

Mo,Mi-Fr 9-19 Uhr, Di 8-19, Sa 9-18 Uhr

Mo-Mi+Fr 9-19, Do 8-19, Sa 9-14 Uhr

Mo,MI,Fr 9-20 Uhr<br>
DI,Do,Sa 8:30-20 Uhr

Mo Di Do Fr 9-19, Mi 8-19, Sa 9-16

我必须像这样重新格式化这些字符串:

Mo 9-19 Uhr, Mi-Fr 9-19 Uhr, Di 8-19, Sa 9-18 Uhr

Mo-Mi 9-19, Fr 9-19, Do 8-19, Sa 9-14 Uhr

Mo 9-20 Uhr, MI 9-20 Uhr, Fr 9-20 Uhr<br>
DI 8:30-20 Uhr, Do 8:30-20 Uhr, Sa 8:30-20 Uhr

Mo 9-19, Di 9-19, Do 9-19, Fr 9-19, Mi 8-19, Sa 9-16

不幸的是,我在处理正则表达式方面相对缺乏经验。

我的想法是先进行preg_match,然后创建字符串new。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

尝试一下:

([a-z]++(?:-[a-z]++)?+)\h*+[,+]?\h*+(?=(?:\h*+[,+]?\h*+[a-z]++(?:-[a-z]++)?+)+\h*+([0-9:-]++))

您有一个演示here