正则表达式:正则表达式是一种字符串搜索和匹配的工具。
正则表达式对目标进行匹配,把符合条件的结果显示出来。
pattern = 正则表达式 subject = 目标数据
preg_match($pattern,$subject,$array);
$array查询结果集 只匹配一次,匹配到之后return返回匹配次数
preg_match_all($pattern,$subject,$array);
$array查询结果集 只匹配全部,匹配到之后return返回匹配次数
preg_replace($pattern,$replacement,$subject);
preg_filter($pattern,$replacement,$subject);
$replacement 要替换的字符串 替换规则和替换内容和目标数据都可为数组
preg_replace return会返回所有数据
preg_filter return只会返回替换过的数据
preg_grep($pattern,$subject)
返回出符合匹配的结果
preg_split($pattern,$subject)
以表达式分割目标数据并返回数组
preg_quote($subject )
给目标数据中的正则符号添加反斜线
正则表达式特殊字符有: . + * ? [ ^ ] $ ( ) { } = ! < > | : -
正则函数匹配环境
preg_match 用于表单验证
preg_replace 用于词语过滤
正则表达式基本语法
对汉字进行搜索的时候最好进行转换Unicode编码,因为有时候代码的编码不同会产生错误
原子的筛选方式
| 匹配两个或者多个分支
[] 匹配方括号中任意一个原子
[^] 匹配除了方括号中的原子之外的任意字符
元字符
. 匹配换行符之外的任意字符
d 匹配任意一个十进制数字 同 [0-9]
D 匹配任意一个非十进制数字 同 [^0-9]
s 匹配任意一个不可见原子 同 [f v]
S 匹配任意一个可见原子 同 [^f v]
w 匹配任意一个数字、字母或下划线 同 [0-9a-zA-Z]
W 匹配任意一个非数字、字母或下划线 同 [^0-9a-zA-Z]
量词
{n} 表示前面的原子正好出现n次
{n,} 表示前面的原子至少出现n次
{n,m} 表示前面的原子至少出现n次,最多出现m次
* 匹配0次、1次或者多次之前的原子 同 {0,}
+ 匹配1次或者多次其之前的原子 同 {1,}
? 匹配0次或者1次之前的原子 同 {0,1}
边界控制
^ 匹配字符串开始的位置
$ 匹配字符串结尾的位置
() 匹配其中的整体为一个原子
贪婪匹配和懒惰匹配
$pattern='/imooc.+123/U'; $subject='I love imooc_123123123123132'; $matches=array(); preg_match($pattern, $subject,$matches);
当$pattern 不在结尾+U的时候为贪婪模式 匹配结果为imooc_123123123123132
当$pattern 在结尾+U的时候为懒惰模式 匹配结果为imooc_123
修正模式
U 懒惰匹配
i 忽略英文字母大小写
x 忽略正则表达式中的空白
s 让元字符 ‘ . ’匹配包括换行符在内所有字符
e