<?php
$str = 'img我b有110www<br>有110110好呀';
echo preg_replace('/(img|110|b)/i', "<b>\${1}</b>", $str);
?>目的是指定的字符粗体显示,怎么排除<br>,不让<br>粗体显示。

解决方案 »

  1.   

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

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

  2.   


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

  3.   

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