2014-09-05
正则表达式在所有编程语言中都是比较重要的知识,php也提供了正则表达式可以通过正则来进行字符串查找和替换,基本上我们可以把java的正则用在php上
一 正则规范
1.常用的正则规范
/w 表示字母、数字、下划线
/W 表示非字母、数字、下划线
/d 表示数字
/D 表示非数字
/s 表示所有空白字符(换行、空格等)
/S 表示所有非空白字符
^ 行的开头(用于定界)
$ 行的结尾(用于定界)
. 匹配除换行之外的任意字符
[abc] 字符a,b,c
[^abc] 除了a,b,c之外的任意字符
[a-zA-Z0-9] 表示由字母、数字组成
/n 表示换行
// 表示反斜杠
2.数量表示(X表示一组规范)
X? 可以出现0次或1次
X+ 可以出现1次或多次
X* 可以出现0次、1次或多次
X{n} 必须出现n次
X{n,} 必须出现n次以上
X{n,m} 必须出现n至m次
3.逻辑运算符(X、Y表示一组规范)
XY X规范后跟着Y规范
(X) 作为一个捕获组规范(子表达式)
X|Y X规范或Y规范
二 php中怎样使用正则
1.使用正则表达式查找固定格式的字符
php提供了preg_match()和preg_match_all()两个方法供我们使用,使用这两个方法可以做字符串格式校验和查找
(1) 取出字符串里的所有四位数
使用之前要注意,php里规定我们把正则规范写在P的位置上 ‘/P/i’,先就取四位数这个举例,代码如下
echo "取出字符串里的所有四位数
";$str1="abcd1034yu3029";preg_match_all('//d{4}/i', $str1,$arr1);foreach ($arr1[0] as $val){ echo "$val"."
";}
(2)取出类似1111、3333这种格式的字符串
这种情况就要使用字表达式了,代码如下
echo "下面是两段代码的运行效果取出字符串里的4位数要求每位数字都相同,例如1111、4444、5555、6666
";$str2="abcd1034yu3029sd3333";preg_match_all('/(/d)/1{3}/i', $str2,$arr2);foreach ($arr2[0] as $val){ echo "$val"."
";}

(3)取出类似1111-2222-3333这种格式的字符串
echo "取出类似1111-2222-3333这种格式的字符串
";$str3="ab3333-5555-6666cd1034yu3029sd3333";preg_match_all('/(/d)/1{3}-(/d)/2{3}-(/d)/3{3}/i', $str3,$arr3);foreach ($arr3[0] as $val){ echo "$val"."
";}

(4)来一个稍微复杂点的,取出类似1111-232-3333、1111-575-3333这种格式的字符串的最后4个数字
echo "取出类似1111-232-3333、1111-575-3333这种格式的字符串的最后4个数字
";$str4="ab3333-575-6666cd10348888-464-9999";preg_match_all('/(/d)/1{3}-(/d)/d/2-(/d)/3{3}/i', $str4,$arr4);foreach ($arr4[0] as $val){ $nums=explode("-", $val); echo "$nums[2]"."
";}

(5)过滤重复字符
1
CI框架连接数据库配置操作以及多数据库操作
09-05
2
asp 简单读取数据表并列出来 ASP如何快速从数据库读取大量数据
05-17
3
C语言关键字及其解释介绍 C语言32个关键字详解
04-05
4
C语言中sizeof是什么意思 c语言里sizeof怎样用法详解
04-26
5
PHP中的魔术方法 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep,
09-05
6
PHP中的(++i)前缀自增 和 (i++)后缀自增
09-05
7
将视频设置为Android手机开机动画的教程
12-11
8
最简单的asp登陆界面代码 asp登陆界面源代码详细介绍
04-12
常用dos命令及语法
2014-09-27
PHP中include和require区别之我见
2014-09-05
php递归返回值的问题
2014-09-05
如何安装PHPstorm并配置方法教程 phpstorm安装后要进行哪些配置
2017-05-03
单片机编程好学吗?单片机初学者怎样看懂代码
2022-03-21
PHP 教程之如何使用BLOB存取图片信息实例
2014-09-05
学ug编程如何快速入门?
2022-03-17
PHP数组函数array
2014-09-05
学习使用C语言/C++编程的7个步骤!超赞~
2022-03-20
零基础的初学者怎样学习java,或者应该先学什么?
2022-03-21
趣味烘焙秀下载v187.1.1 安卓版
其它手游 72.18MB
下载
盖瑞模组机器人下载v1.66.1 安卓版
其它手游 145.89MB
下载
狂飙大卡车下载v1.0.7 安卓版
其它手游 18.75MB
下载
海洋连连消下载v1.0.7 安卓版
其它手游 19.07MB
下载
来切我呀下载v1.1.1 安卓版
其它手游 138.5MB
下载
猎手大追捕下载v187.1.1 安卓版
其它手游 116.76MB
下载
疯狂牛马实验室下载v2.0.1 安卓版
其它手游 79.88MB
下载
炮弹消消乐下载v0.251111.169 安卓版
其它手游 135.69MB
下载极限躲猫猫模拟下载v1.0 安卓版
下载
尸群突袭最新版下载v3 安卓版
下载
僵尸追逐游戏下载v2.1 安卓版
下载
钢铁山海经下载v1.0 安卓版
下载
水果萌萌消下载v1.0.1 安卓版
下载
恐怖童话故事下载v1.0 安卓版
下载
差不多英雄5.8.7破解版下载v5.8.7 安卓修改版
下载
差不多英雄内购破解版最新版下载v5.8.7 安卓中文版
下载