【发布时间】:2019-05-08 13:52:42
【问题描述】:
我有以下字符串:
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,然后创建新的字符串。
有人可以帮我吗?
【问题讨论】:
-
我的想法是先做一个 preg_match 然后创建新的字符串。好主意,试试看。
-
我认为尝试使用 preg_replace 获得结果没有多大意义。使用 preg_match 将其拆分为多个部分,然后编写一些脚本逻辑以您需要的输出格式重新排列它们。
-
好的。我如何匹配这样的字符串“Mo,Mi-Fr 9-19 Uhr”。一点启动帮助会非常好,很有帮助。
-
你需要自己努力,我们不是来给你写这个的。 regex101.com 或 regextester.com 之类的网站可以帮助您入门和测试。
-
我认为这也不应该使用一个“杀手级正则表达式”来完成。首先在逗号处拆分它,然后遍历各个部分并在空格处拆分它们,这样您就可以将日期和时间作为单独的组件来获取。继续从那里分割一天的部分......
标签: php preg-replace preg-match