PHP字符串正则替换函数preg_replace

作者:袖梨 2022-06-24

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

返回值: 混合类型资料

函数种类: 资料处理

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

1. preg_replace()

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

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


2. ereg()与eregi()

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

eregi("]+)>(.+)",$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()与大小写无关

 

php教程
//preg_replace()和ereg_replace()函数的使用的比较
// -------preg_replace()--------------------------
//1.进行字符串的查找的替换
         $str         = "daoyu shi ge hao hai zi 5555";
         $pattern     = "/s/";           //如果将变量定义为$pattern_1会出错
         $str               = preg_replace($pattern,'-',$str);
         echo $str."
";

//2.对字符串的逆向引用
//方法一
         $pat         = "/(w+)-(w+)-(w+)-(w+)-(w+)-(w+)-(d+)/i";
         $str         =preg_replace($pat,"$1",$str);
         echo $str."
";

//注意:如果是下面这种形式你会发现匹配的是:zi- 所以可以这样认为在有次数的{6}的情况下,他($1)匹配的是最后一次
         $pat         = "/((w+)-){6}(d+)/i";
         $str         =preg_replace($pat,"$1",$str);
         echo $str."
";


//方法二
         $str         = "daoyu-shi-ge-hao-hai-zi-5555";
         $pat         = "/(w+)-(w+)-(w+)-(w+)-(w+)-(w+)-(d+)/i";       
         $str         =preg_replace($pat,"1",$str);
         echo $str."
";

//注意:当正则写成$pat= "/((w+)-){6}(d+)/i";时和上面的情况一样

相关文章

精彩推荐