Welcome 微信登录

首页 / 网页编程 / PHP / 常用正则表达式函数(Perl风格)

常用正则表达式函数(Perl风格)2017-02-04 本站 guaitu

1、preg_replace()函数:替换模式的所有出现

搜索到所有匹配,然后替换成想要的字符串并返回

例:

<?php
header("content-type: text/html;charset=utf-8");
$str = preg_replace("/php[1-6]/", "python","php4, this is php5");
echo $str; //输出:python, this is python
?>

2、preg_grep()函数:搜索字符串

搜索数组中所有元素,返回由与某个模式匹配的所有元素组成的数组。

例:

<?php
header("content-type: text/html;charset=utf-8");
$arr = array("php","asp","jsp","python","java");
print_r(preg_grep("/p$/",$arr));
?>

3、preg_match()函数:

在字符串中搜索模式,如果存在,返回真,否则返回假。

例:

<?php
header("content-type: text/html;charset=utf-8");
echo preg_match("/php[1-6]/","php5");
?>

4、preg_split()函数:

以不区分大小写的形式将字符串分割为不同的元素,返回一个一维数组。

<?php
header("content-type: text/html;charset=utf-8");
//[.@]按.或@分割,[]里的内容是“或”的关系;
//如果没有[],表示需要同时满足,即.和@相邻,.@
$arr = preg_split("/[.@]/","abc@abc.com");
print_r($arr);
echo "<br />";
foreach($arr as $key=>$val){
echo $val."--";
}
?>

5、模式分组应用案例:电子邮件验证

<?php
header("content-type: text/html;charset=utf-8");
//$mode = "/(用户名)@(网址).(域名)/";
//用户名:长度大于2,小于255,可包含字母,数字,下划线,小数点(需要转义一下)
//$mode = "/([w.]{2,255})@(网址).(域名)/";
//网址:长度大于1,小于255,可包含字母,数字,下划线,减号-(-也需要转义)
$mode = "/([w.]{2,255})@([w-]{1,255}).([a-zA-Z]{2,4})/";
$string = "bianceng.cn@abcd.com";
if(preg_match($mode,$string)){
echo "合法邮件地址";
}else{
echo "不合法邮件地址";
}
?>

6、preg_match_all()函数:

在字符串中匹配模式的所有出现,然后将匹配到的结果存入一个二维数组中。

例:

<?php
header("content-type: text/html;charset=utf-8");
preg_match_all("/php[1-6]/","php5aaaphp6aaaphp4",$out);
print_r($out);
?>

7、preg_quote()函数:定界正则

在每个对于正则表达式语法而言有特殊含义的字符前插入一个反斜线,这些特殊字符包括:

$, ^, *, (), +, =, {}, [], |, \, :, <>

例:

<?php
header("content-type: text/html;charset=utf-8");
echo preg_quote("I have $100");
?>
URL: http://www.bianceng.cn/webkf/PHP/201702/50545.htm