日期:2014-05-17  浏览次数:20404 次

问个正则表达式,怎么排除<br>
PHP code
<?php
$str = 'img我b有110www<br>有110110好呀';
echo preg_replace('/(img|110|b)/i', "<b>\${1}</b>", $str);
?>


目的是指定的字符粗体显示,怎么排除<br>,不让<br>粗体显示。


------解决方案--------------------
echo preg_replace('/(img|110|b\b)/i', "<b>\${1}</b>", $str);

echo preg_replace('/(img|110|b(?!r))/i', "<b>\${1}</b>", $str);

------解决方案--------------------
?!r
------解决方案--------------------
PHP code

'/(?<!<)(img|110|b)/i'

------解决方案--------------------
如果你需要考虑复杂点的情况,正则式就稍微复杂点,注意标签html标签内的img,110,b
PHP code
$str = '<img src="img/110/b.jpg"/>我img我b有110www<br>有110110好呀';
echo preg_replace('#(?=[^>]*(?=<|$))(img|110|b)#is','<b>\1</b>',$str);