php - 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 然后创建新的字符串。
有人能帮我吗?
解决方案
试试这个:
([a-z]++(?:-[a-z]++)?+)\h*+[,+]?\h*+(?=(?:\h*+[,+]?\h*+[a-z]++(?:-[a-z]++)?+)+\h*+([0-9:-]++))
你在这里有一个演示
推荐阅读
- c++ - 如何用 C++ 编写映射程序
- c# - 使用 2 个嵌套形式,但内部形式未在 asp.net 中显示
- blockchain - 如何在 Solana 上与其他人的公共程序互动?
- c# - 单击按钮后禁用使用 CSSclass 的 asp.net C# gridview 样式
- if-statement - 将数据从多列转换为行并保留“标签”
- javascript - 在 Angular 11 中获取 http://localhost:4200/account/runtime.js net::ERR_ABORTED 404(未找到)
- python - 尝试使用开源库为我的数据集预测性别,但仅在预测性别中显示男性
- reactjs - react.js 重新渲染组件仅在为 state 赋予另一个值时才起作用,与以前不同
- reactjs - React Financial Chart 未显示图表并抛出错误 - 在严格模式树中检测到旧版上下文 API
- docker - Docker 容器无法使用容器名称访问另一个容器