正则表达式:在PHP中替换第一个空格后

时间:2017-04-26 04:26:56

标签: php regex preg-replace

我在PHP中制作translateModel,它将以HTML格式返回

因此,在示例代码中,它只是用' '

替换空格
preg_replace('/\s/', ' ', $myString);

但我想要的是在第一个空格后替换等等(不计算第一个空格)

如:

  • A B C   D     E

2 个答案:

答案 0 :(得分:1)

要替换除第一个空格之外的空白条纹中的每个空格,请使用

preg_replace('~(?<=\s)\s~', '&nbsp;', $myString)

请参阅regex demo

它会将A B C D E变为A B C &nbsp;&nbsp;D &nbsp;&nbsp;&nbsp;&nbsp;E

您的/\s(?=\s)/外观提前解决方案将替换所有空格,但最后一个空格连续,因为正向预测需要立即在右边存在模式当前位置,整个 lookbehind 将查找与当前位置的 left 匹配。

答案 1 :(得分:0)

我想我找到了答案:

preg_replace('/\s(?=\s)/', '&nbsp;', $myString);