PHP使用preg_replace替换空间

时间:2012-11-10 18:50:31

标签: php regex string replace preg-replace

如何使用preg_replace()更改< >&nbsp

范围内的所有空间
$var="<  >< >Association football< ><  >"

$var="<  ><  >Association&nbspfootball<  ><  >"

使用preg_replace()执行此操作的常规表达是什么?

2 个答案:

答案 0 :(得分:4)

这与question just asked非常相似。基本上,您需要使用lookahead,以确保在下一个<之前找到>或字符串的结尾:

$var = preg_replace('/[ ](?=[^<>]*(?:<|$))/', '&nbsp', $var);

Working demo

Some more general information about lookarounds.

答案 1 :(得分:3)

$var = preg_replace('/[ ](?=[^>]*(?:<|$))/', '&nbsp', $var);

请参阅this efficiency demo,将此解决方案与m.buettner发布的解决方案进行比较。