php正则替换变量中的指定字符

第一种方法,代码如下:

  1. <?php
  2. $str = preg_quote('(银子)');
  3. $txt = '我的呢称(银子)';
  4. echo preg_replace("/($str)/","<span >$1</span>",$txt);
  5. ?>

第二种方法,代码如下:

  1. <?php
  2. $str = quotemeta('(银子)');
  3. $txt = '我的呢称(银子)';
  4. echo preg_replace("/($str)/","<span >$1</span>",$txt);
  5. ?>

第三种方法,代码如下:

  1. <?php
  2. $str = '(银子)';
  3. $txt = '我的呢称(银子)';
  4. echo preg_replace("/(Q$strE)/","<span >$1</span>",$txt);
  5. ?>

三种方法都返回同样结果.. PHP中的Perl风格正则与Perl完全一样.连quotemeta也是通用的..

一些其它关于正则的实例,代码如下:

  1. $text = “foobar123fooabcbar”;
  2. $text = preg_replace(“/foo(?=bar)/”, “***”, $text);
  3. //匹配bar前面的位置 ***bar123fooabcbar
  4. $text = “foobar123fooabcbar”;
  5. $text = preg_replace(“/(?<=bar)123/”, “***”, $text);
  6. //匹配bar后面的位置 foo***123fooabcbar
  7. $text = “foobar123fooabcbar”;
  8. $text = preg_replace(“/foo(?!bar)/”, “***”, $text);
  9. //匹配后面跟的不是bar的位置 foobar123***abcbar
  10. $text = “foobar123fooabcbar”;
  11. $text = preg_replace(“/(?<!foo)bar/”, “***”, $text);
  12. //匹配前面不是foo的位置 foobar123fooabc***