php中的正则表达式

Posted simple827

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php中的正则表达式相关的知识,希望对你有一定的参考价值。

/preg_macth(正则, 待匹配字符串返回 0 次(不匹配),返回 1 次表示匹配)
//preg_macth_all(正则, 待匹配字符串返回完整匹配次数(可能是0),或者如果发生错误返回FALSE
//preg_repalce(正则,替换字符,待匹配字符)
//邮政编码的检测
$str = ‘123456‘;
$preg = ‘/d{6}/‘; //数字出现6次
print_r(preg_match($preg,$str)); //返回 1
echo ‘<br>‘;

// 判断数字是否出现两次
$str = ‘林深时见鹿111‘;
$preg = ‘/[0-9]{2}/‘;
print_r(preg_match($preg,$str)); //返回 1
echo ‘<br>‘;

$str = ‘林深时见鹿111‘;
$preg = ‘/[0-9]{3}/‘; //3
print_r(preg_match($preg,$str)); //返回1
echo ‘<br>‘;

//匹配文件的格式
$str= ‘calss.js‘;
//.在正则表示匹配任意字符,此时只想让她匹配 字符.,是/所以使用/转义 /.就代表. 没有别的意思
// | 是或的意思
$preg =‘/.(php|js|txt)/‘ ;
print_r(preg_match($preg,$str)); //返回1
echo ‘<br>‘;
echo ‘<br>‘;

//去除空格
$str = ‘ I real love so much ‘;
// $preg = ‘/s+/‘;
// $preg = ‘/^s+/‘;
$preg = ‘/^s+$/‘;
print_r(preg_replace($preg,‘ ‘,$str));
echo ‘<br>‘;
var_dump(preg_replace($preg,‘ ‘,$str));
echo "<br>";
var_dump(trim($str));
echo ‘<br>‘;

//qq邮箱
// 23322@qq.com
// fengchengcheng@163.com
// 18336629256@163.com
// chengfeng@1000phone.com
// root@gmail.com
$str = ‘simple827@qq.com‘;
$preg = ‘/^[a-zd]{3,15}@[a-z0-9]{2,9}.[a-z]{2,3}$/‘;
print_r(preg_match($preg,$str));
echo ‘<br>‘;

//定位符
// ^ 限定行首数据 限定必须以什么开头
// $ 限定行尾数据 限定必须以什么结尾
$str = ‘123qwe11‘;
$preg = ‘/^d/‘; //必须以数字开头
print_r(preg_match($preg,$str));
echo ‘<br>‘;


$str = ‘123qwe11‘;
$preg = ‘/d$/‘; //必须以数字结尾
print_r(preg_match($preg,$str));
echo ‘<br>‘;

//检测图片是否为png或jpg后缀
$str = ‘a.jpg‘;
$preg = ‘/^.+.jpg$|^.+.png$/‘; //异曲同工之处 .......不怎么清楚
//$preg = ‘/^.+.(jpg|png)$/‘;
print_r(preg_match($preg,$str));
echo ‘<br>‘;

//手机号检测
//1开头, 35789接一位 ,后接9位
$str = ‘15979590267‘;
// $preg = ‘/^1[35789]{1}d{9}/‘;
print_r(preg_match($preg, $str));
echo ‘<br>‘;

//中文检测
//常用字符都存在一个编码的规则,对于中文的编码一般都是使用utf-8编码,并且php天生使用的就是utf-8对待字符串。并且utf-8的编码是存在一个范围的[x{4e00}-x{9fa5}]
echo ‘这是中文检测‘;
echo ‘<br>‘;
$str = ‘ab你有点漂亮cd‘;
$preg = ‘/[x{4e00}-x{9fa5}]/u‘;
print_r(preg_match($preg,$str));
echo ‘<br>‘;
echo ‘jiwwei ‘;

echo‘<br>‘;


//用户名检测
//账号由2~12个数字、字母下划线组成,首字母不能是数字
// $preg = ‘/w{2,12}[a-zA-Z]/‘; //以数字、字母下划线开头,以字母结尾
// $preg = ‘/[a-zA-Z_]{2,12}/‘;//以字母,下划线组成
// $preg = ‘/^[a-zA-Z_]{2,12}_$/‘;//必须以字母下划线开头的 以下划线结尾



//字符串过滤
echo ‘test‘;
echo‘<br>‘;
$str = ‘ i real love you ‘;
$preg = ‘/^s.+s$/‘;
print_r(preg_match($preg,$str));
echo ‘<br> ‘;
//手机号码的替换

$str =‘15979590267444422333‘;
$preg = ‘/^(d{3})d{4}(d{4})(d{4})d{2}(d{3})$/‘;
// print_r(preg_repalce($preg,‘1****2‘,$str));
//print_r(preg_match($reg,$str));
//()扩号 表示匹配值,
// 1 表示引用第一次匹配成功的结果
// 2 表示引用第二次匹配成功的结果
echo preg_replace($preg,‘1****23!!4‘,$str);

以上是关于php中的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

正则语法及在php中的应用

php 正则表达式 提取字符串内小括号中的数字,只要数字

PHP 正则表达式中的 ^$ 和 $^ 是不是相同?

PHP正则表达式的使用技巧

php中的PCRE 函数,正则表达式处理函数。

正则表达式中的php变量?