php正则表达式
来源:互联网 发布:网络曝光平台 编辑:程序博客网 时间:2024/05/16 01:43
正则表达式的基本语法:
界定符
原子
量词
边界控制
模式单元
-------------------------------------------------------------------------------------------------------------------------
界定符
表示一个正则表达式的开始和结束,有三种写法!
$pattern = '/[0-9]/';
#[0-9]#
{[0-9]} 一般不使用这个,会和大括号产生歧义
-------------------------------------------------------------------------------------------------------------------------
正则表达式的工具:regexpal,正则表达式的调试工具
调试工具地址:http://regexpal.isbadguy.com/
-------------------------------------------------------------------------------------------------------------------------
原子
正则表达式中最小的匹配单位,通常是unicode编码表的某一个字符,原子分为两种,可见原子,不可见原子。
不可见原子:
换行符\n 回车\r 制表符\t 空格 等其他不可见符号
-------------------------------------------------------------------------------------------------------------------------
原子的筛选方式
- | 匹配两个或者叫多个分支的选择
- [] 匹配方括号中的任意一个原子
- [^] 匹配除方括号中的原子之外的任意字符
-------------------------------------------------------------------------------------------------------------------------
原子的集合
- . 匹配除换行符之外的任意字符
- \d 匹配任意一个十进制数字,即[0-9]
- \D匹配任意一个非十进制的数字 ,即[^0-9]
- \s 匹配一个不可见原子,即[\f\n\r\t\v]
- \S 匹配一个可见原子,即[^\f\n\r\t\v]
- \w 匹配任意一个数字、字母或下划线,即[0-9a-zA-Z_]
- \W 匹配任意一个非数字、字母或下划线,即[^0-9a-zA-Z_]
-------------------------------------------------------------------------------------------------------------------------
量词
{n} 表示其前面的原子恰好出现n次
{n,} 表示其前面的原子最少出现n次
{n,m} ....n-m次 你懂得
* 匹配0次,1次或者多次的原子即{0,}
+ 匹配一次或者多次之前的原子,即{1,}
? 匹配0次或者1次其之前的原子,即{0,1}
-------------------------------------------------------------------------------------------------------------------------
边界控制与模式单元
^ 匹配字符串开始的位置
$ 匹配字符串结尾的位置
() 匹配其中的整体为一个原子
-------------------------------------------------------------------------------------------------------------------------
修正模式:贪婪模式(默认) 、 懒惰模式(U)加大写的U
$pattern='/xxxxxxxxxxxx/U';
常见的修正模式:
U/u - 懒惰匹配/贪婪匹配
i - 忽略英文字母大小写
x - 忽略空白
s - 让元字符 . 匹配包括换行符在内的所有字符
e -
eg:匹配所有的邮箱
^\w+(\.\w+)*@\w+(\.\w+)+$
eg:匹配所有的URL
^(https?://)?(\w+\.)+(com|cn)$
-------------------------------------------------------------------------------------------------------------------------
preg_match() 和 preg_match_all():
preg_match()只判断是否匹配上,返回值是0或者是1也就是是不是匹配上.
preg_match_all()把所有匹配的结果都放到$arr里,注意这个$arr是&的,所以会直接修改数组。
另外结果的$arr[0]是全部匹配成功的模式字符串,$arr[1]是只包括匹配成功的字符串。
preg_replace() 和 preg_filter():
preg_replace()是str_replace的加强版,它第一个参数传入的值是$pattern也就是正则字符串,所以它很强大。
这两个函数的作用都是匹配并替换内容返回结果,这次不是&了 ,会返回一个数组或字符串“副本”。
注意:两者的区别是,filter 是过滤的意思,也就是说,如果$subject,要匹配的内容传入的是一个数组的话,preg_filter()就会过滤掉没有匹配上的数组单元,如图:
结果:
代码:
preg_grep($pattern,array $input):
相当于阉割版的preg_filter();它只做匹配不做替换,无法匹配的将会被替换.
preg_split($pattern,$subject):
preg_split()是explode()的加强版;
利用$pattern,的值来分割$subject成数组;
preg_quote($str);
正则运算符转义;
- php的正则表达式
- PHP 正则表达式资料
- PHP 正则表达式
- php正则表达式介绍
- PHP 正则表达式资料
- php之正则表达式
- PHP和正则表达式
- PHP常用正则表达式
- php正则表达式实例
- PHP正则表达式收集
- PHP正则表达式收集
- PHP正则表达式
- PHP中的正则表达式
- PHP中的正则表达式
- PHP和正则表达式
- PHP常用正则表达式
- php正则表达式详解
- PHP正则表达式
- Gephi丰富的插件一瞥
- 苹果终端的自动补全和git自动补全
- 判断俩单链表是否相交
- 跟我学Spring3(8.2):对ORM的支持之集成Hibernate3
- web入门
- php正则表达式
- 循环引用
- (7)排序算法——桶排序
- 解决创建XIB 与UIView关联
- Android 多渠道打包原理和使用
- 3237: [Ahoi2013]连通图/3563: DZY Loves Chinese/3569: DZY Loves Chinese II 线性基+随机化
- Android基础
- 全排列
- Unable to open liblaunch_sim.dylib. Try reinstalling Xcode or the simulator