正则表达式替换文本中的空格

时间:2011-03-28 16:48:38

标签: php regex preg-replace

我有一个HTML代码。像这样:

<div>
    (<- it is a tab) blaaaa ttoooo
    <span id="span" class="class">Hiii Bye</span>
    (<- these are 4 space character)
    <span id="span" class="class">Welcome   Back</span>
</div>

我想替换" "\t之间的任何空格(仅空格:>,而不是任何标签<))(意味着空间) (s)不在&nbsp;的html标记中。 (使用PHP和RegEX)

所以在更换后,我的代码就是它:

<div>
    blaaaa&nbsp;ttoooo
    <span id="span" class="class">Hiii&nbsp;Bye</span>
    <-&nbsp;these&nbsp;are&nbsp;4&nbsp;space&nbsp;character
    <span id="span" class="class">Welcome&nbsp;&nbsp;&nbsp;Back</span>
</div>

我该怎么做?

非常感谢你。 ...

2 个答案:

答案 0 :(得分:0)

丑陋,但它会起作用:

$output = preg_replace_callback("#>[^<]+<#","replace_spaces",$input);

function replace_spaces($match)
{
     return str_replace(" ","&nbsp;",$match[0]);
}

但不适用于最外层标签之外的空格。

答案 1 :(得分:0)

别。请改用whitespace: pre CSS声明。