首页 > 解决方案 > 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 然后创建新的字符串。

有人能帮我吗?

标签: phppreg-replacepreg-match

解决方案


试试这个:

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

你在这里有一个演示


推荐阅读