正则表达式函数实例详解(及PHP字符串处理函数)
发布时间:2020-12-14 00:43:07 所属栏目:百科 来源:网络整理
导读:本文将介绍Perl正则表达式常用的函数,介绍函数常用的语法实例。 首先来看, 对文本的处理方式 :匹配,查找,分隔,替换。字符串函数和正则表达式,都可以处理,那他们分别有什么区别哪? 1、主要区别在于, 字符串处理函数,只可准对性的处理,而正则表达
本文将介绍Perl正则表达式常用的函数,介绍函数常用的语法实例。 首先来看,对文本的处理方式:匹配,查找,分隔,替换。字符串函数和正则表达式,都可以处理,那他们分别有什么区别哪? 匹配查找字符串匹配函数strstr,strpos,substr等 正则匹配preg_match,prge_match_all,preg_grep preg_match,preg_match_all,preg_greppreg_match("/reg/",string,$arr);//reg:正则表达式;string:字符串;$arr:匹配结果(匹配详情)
preg_match_all("/reg/",$arr);//规则同上,但是此函数可以返回所有匹配结果,preg_match 匹配的是第一处
preg_gerp("/reg/",$array);//reg:正则, $array:字符串数组
例如:
$arr = array("abcd1","hello2","world","nihao")
$content = preg_grep("/d/",$arr);
// preg_prep 可以匹配字符串数组
分隔同样的道理,字符串分隔只能按固定的值分隔,而正则分隔则可以按照一种模式进行分隔。 explode(separator,$str,num);//separator 分隔符,要分割的字符串,返回数组元素的数目
// 若未找到,则不分割
实例: <?php $str = "php"; $reg = "//"; $arr = preg_split($reg,-1,PREG_SPLIT_NO_EMPTY);//-1表示不限制个数,后面参数表示去除空。 $result = implode("-",$str);// 将数组中的每一项拼接,结果为: l-a-m-p list($a,$b)= explode("-","soufun_ask");//字符串分隔,分别放到list中 echo $a;//soufun echo $b;//ask
替换字符串:str_replace(mix $search,mix $replace,mix $subject,[int &count]) // search : 搜索的内容,可为数组["正常","PHP","微信"]; // replace: 要替换的内容["不正常","JAVA","QQ"];可以针对性的替换,不正常代替正常,JAVA 代替PHP,QQ代替微信。
//subject :源内容,源字符串
//count :替换的次数
正则表达式:实例① 以下是一个实例,将链接进行替换成a标签 <?php
$str = "百度的连接是http://www.baidu.com,CSDN的连接是http://www.csdn.net,搜房问答的连接是http://www.fang.com/ask";
$reg = "/http://(www).(.*?).(com|net)(/.*)?/";
if (preg_match_all($reg,$arr)){
echo "匹配成功</br>";
echo "<pre>";
var_dump($arr);
echo "</pre>";
}
$newStr = preg_replace($reg,"<a href='$0'>1.2.34</a>",$str);
echo "</br>{$newStr}";
实例②:代码与以上一样,讲讲模式修正符 e $newStr = preg_replace($reg,"<a href='$0'>"."strtoUpper(1.2.34)."</a>",$str); //比如我想讲替换的链接转成 大写 之后显示 //此时若想 执行替换字符中的函数,就需要在 正则之后加上模式修正符 e $reg = "/http:/(www).(.*?).(com|net|cn)/e";//便可匹配之后执行函数
其他替换函数preg_replace_callback($reg,"myfun",$text);//myfun: 回调函数,执行完匹配之后调用回调方法。
preg_quote();// 转义特殊字符:$reg = "/".preg_quote("*is*")."/";// 转义之后: *is*
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |