加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP字符串正则替换函数preg_replace

发布时间:2020-12-13 20:20:43 所属栏目:PHP教程 来源:网络整理
导读:语法: mixed preg_replace(mixed pattern,mixed replacement,mixed subject); 返回值: 混合类型资料,函数种类: 资料处理 内容说明: 本函数以 pattern 的规则来解析比对字符串 subject,欲取而代之的字符串为参数replacement。返回值为混合类型资料,为取代后

语法: mixed preg_replace(mixed pattern,mixed replacement,mixed subject);

返回值: 混合类型资料,函数种类: 资料处理

内容说明: 本函数以 pattern 的规则来解析比对字符串 subject,欲取而代之的字符串为参数replacement。返回值为混合类型资料,为取代后的字符串结果。

一,preg_replace():

$msg = preg_replace("/<style>.+</style>/is","",$msg);//删除<style></style>和中间的部

$msg = preg_replace("/<[^>]+>/",$msg); //删除<>和中间的内容

i (PCRE_CASELESS):如果设定此修正符,模式中的字符将同时匹配大小写字母。 

s (PCRE_DOTALL):如果设定了此修正符,模式中的圆点元字符(.)匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。这和 Perl 的 /s 修正符是等效的。排除字符类例如 [^a] 总是匹配换行符的,无论是否设定了此修正符。

二,ereg()与eregi()

注:preg_match() 函数通常是比 ereg() 更快的替代方案

eregi("<body([^>]+)>(.+)</body>",$data,$b)//察看$data中是否有body标签,如果有,把参数赋值$b[0],中间部分赋值$b[1]。

bool ereg ( string pattern,string string [,array regs] )

int eregi ( string pattern,string string,array [regs] )

eregi()和 ereg() 类似,用法也相同,不同之处在于ereg()有区分大小写,eregi()与大小写无关

  1. <?php 
  2. //preg_replace()和ereg_replace()函数的使用的比较 
  3. // -------preg_replace()-------------------------- 
  4. //1.进行字符串的查找的替换 
  5.        $str  = "daoyu shi ge hao hai zi 5555"
  6.        $pattern  = "/s/";  //如果将变量定义为$pattern_1会出错 
  7.        $str = preg_replace($pattern,'-',$str); 
  8.        echo $str."<br>"
  9. //2.对字符串的逆向引用 
  10. //方法一 
  11.          $pat = "/(w+)-(w+)-(w+)-(w+)-(w+)-(w+)-(d+)/i"
  12.          $str =preg_replace($pat,"$1",$str); 
  13.          echo $str."<br>"
  14. //注意:如果是下面这种形式你会发现匹配的是:zi- 所以可以这样认为在有次数的{6}的情况下,他($1)匹配的是最后一次 
  15.          $pat  = "/((w+)-){6}(d+)/i"
  16.          $str  =preg_replace($pat,$str); 
  17.          echo $str."<br>"
  18. //方法二 
  19.          $str = "daoyu-shi-ge-hao-hai-zi-5555"
  20.          $pat = "/(w+)-(w+)-(w+)-(w+)-(w+)-(w+)-(d+)/i";         
  21.          $str =preg_replace($pat,"1",$str); 
  22.          echo $str."<br>"
  23. //注意:当正则写成$pat= "/((w+)-){6}(d+)/i";时和上面的情况一样 
  24. ?> 

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读