preg-replace错误

时间:2011-02-28 14:40:12

标签: php regex string preg-replace str-replace

任何人都可以找到此错误的解决方案,

     $str=  trim(strip_tags($str));

$str = preg_replace("'<style[^>]*>.*</style>'siU",'',$str);

    $patterns = array();
$patterns[0] = '&nbsp; ';
$patterns[1] = ' &nbsp;';
$patterns[2] = '&nbsp;';
$replacements = array();
$replacements[0] = '';
$replacements[1] = '';
$replacements[2] = ' ';

$str    =   preg_replace($patterns, $replacements, $str);

显示此错误。

消息:preg_replace()[function.preg-replace]:无结尾分隔符'&amp;'结果

-Arun

2 个答案:

答案 0 :(得分:0)

你有错误代码的答案,正则表达式需要分隔符才能工作。

你应该使用str_replace &nbsp;

答案 1 :(得分:0)

模式中的第一个字符被解释为分隔符,现在PHP认为您要使用&amp;作为分隔符。在你的第一个正则表达式中,分隔符为',BTW。我猜你真正想要的不是'&nbsp;',而是'/&nbsp;/'(例如对于模式2),现在/是分隔符(它不是正则表达式本身的一部分)。顺便说一句,你的第一个正则表达式看起来也不正确,应该是

'<style[^>]*>[^<]*</style>'

否则正则表达式可以匹配整个文档的第一个标记和最后一个标记。