使用一个正则表达式查找html标记中的所有空格

时间:2013-01-16 11:43:44

标签: html regex tags

我有一个用户生成的 HTML 有效文本,我需要在其中查找并替换所有内部 html标记的空格。请不要问我为什么,我只是在寻找找到 HTML 标签的<>之间所有空格的正则表达式。

3 个答案:

答案 0 :(得分:1)

我建议你永远不要使用Regex来解析HTML。

HTMLAgilityPack查看: Html Agility Pack

答案 1 :(得分:1)

可以使用回调函数完成。 PHP示例(版本&gt; = 5.3)

echo preg_replace_callback(
    '~<(.*?)>~s', 
    function ($match) {
        return '<' . str_replace(' ', 'your_replacement', $match[1]) . '>';
    },
    $str
);

答案 2 :(得分:0)

在等待正则表达式解决方案时,我创建了以下爆炸内爆解决方案:

$tags_split_array = explode("<", $htmltext);
foreach($tags_split_array as $key => $tagpart) {
    $tagpart_array = explode(">", $tagpart);
    $tagpart_array[0] = str_replace(" ", "ψ", $tagpart_array[0]);
    $tags_split_array[$key] = implode(">", $tagpart_array);
}
$htmltext= implode("<", $tags_split_array);

但仍然是正则表达式解决方案要好得多,所以我会使用它。