【六】PHP正则表达式方法

本文详细介绍了PHP中正则表达式的使用方法,包括匹配、判断、转义、替换和分割等操作,并通过实例展示了如何高效地进行文本处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PHP中正则表达式的声明格式有两种方式,一种是POSIX老版模式,已经不常用。还有一种是其他语言中常见的PCRE方法。

1.正则表达式的匹配方法并返回匹配的项:array preg_grep(string reg,array 被匹配的数组);

$reg="/a|b/";
$str=array('abcaBC','bcd','kkk');
$ar=preg_grep($reg,$str);
print_r($ar);//Array ( [0] => abcaBC [1] => bcd )

2.判断目标字符串是否匹配正则表达式:int preg_match(string 正则表达式,string 目标字符串,array 存放数组(可有可无));  int preg_match_all(string 正则表达式,string 目标字符串,array 存放数组);

 $arr=$arr2=array();
 $reg="/a|b/";
 $str='cccacccccaa';
 echo preg_match_all($reg,$str,$arr);//3
 echo preg_match($reg,$str,$arr2);//1
 print_r($arr);//Array ( [0] => Array ( [0] => a [1] => a [2] => a ) )
 print_r($arr2);//Array ( [0] => a )

3.将字符串中的特殊字符转义 string preg_quote(string 目标字符串,string 指定转义的字符串(可有可无));

$str="\$$^&#@";
$str2='\$$^&#@';
echo preg_quote($str);// \$\$\^&#@
echo preg_quote($str2);// \\\$\$\^&#@
echo preg_quote($str,'@');// \$\^&#\@

 

4.正则表达式的替换函数:preg_replace(string 正则,string 替换字符,string 目标字符串,int 替换次数(可有可无,默认全部替换));

$reg="/a|b/";
$str='abcskdfaasdca';
echo preg_replace($reg,'@',$str);//@@cskdf@@sdc@
echo preg_replace($reg,'@',$str,2);//@@cskdfaasdca

5.正则表达式的替换函数:preg_replace_callback(string 正则 ,string callback函数名,string 目标字符串,int 可有可无的替换次数);

function call($ss){
        $ss='obj';
        return $ss;
 }
$reg="/a|b/";
$str='abcdefga';
echo preg_replace_callback($reg,'call',$str);//objobjcdefgobj
echo preg_replace($reg,'call',$str,2);//objobjcdefga

6.用正则表达式分割字符串,返回一个数组:array preg_split(string 正则,string 目标字符串,int 分割次数(可有可无)); 注:作为分割的匹配项被删除。

$reg="/a/";
$str='abcadeafga';
print_r(preg_split($reg,$str));//Array ( [0] => [1] => bc [2] => de [3] => fg [4] => )
print_r(preg_split($reg,$str,2));//Array ( [0] => [1] => bcadeafga )

 

 

转载于:https://www.cnblogs.com/JhoneLee/p/3820651.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值