正则表达式又称规则表达式,在代码中常简写regex,regexp或RE,正则表达式通常被用来检索,替换那些符合某个模式(规则)的文本
(通过一种特殊的语言,来挑选符合条件的数据)
特点:
1)灵活,逻辑性和功能性强
2)可以迅速的用极简单的方式达到字符串的复杂控制
正则表达式的用途:
1)判断字符串是否符合某一规则(判断是否符合手机号,邮箱规则)
2)从一个字符中找出符合规则的所有字符串(取HTML标签名)
PHP中使用正则规则一定要加正则的标识 / /
1)Preg_match_all(正则表达式,匹配字符串) 返回匹配的次数
举例:
<?php
$a=preg_match_all('/A/','aaAAAA');
var_dump($a);
?>
2)preg_replace(正则表达式 ,替换成什么,匹配的字符串是什么) 返回替换的结果
举例:
<?php
$d=preg_replace('/a/','b','aaaacccc');
var_dump($d);
?>
常用转义字符:
1)数字: \d
非数字: \D(所有除了数字的包括空格,下划线)
2)空白字符(空格,制表符,换页符): \s
非空白字符: \S
3)单词字符(26个英文字母+数字+下划线): \w
非单词字符; \W
自定义字符结合:[]
1)字符集合:[单个字符或字符区间],用于匹配集合内字符
举例:
1)[a-z]表示a-z这26个小写字母
2)[0-9a-z]表示0-9这10个数字和a-z这26个小写字母
3)[135a-h]表示包含1,3,5这三个数字和a到h这个几个字母
注意:两个不同字符段间切勿用,隔开
2)非集[^ 单个字符或字符区间],用于匹配非集合内字符(只是在中括号
中代表取反,在正则语法里代表字符串的开始位置
举例:
1)[^0-9]表示匹配所有非数字字符
2)[^a-zA-Z]表示匹配所有除字母的字符
正则表达式的语法-关键字
1)()代表一个整体
2)^代表字符串的开始位置
3)$代表字符串的结束位置
4).代表通配符[代表任意字符][不匹配换行]
5)*匹配0次或多次
6)+匹配一次或者多次
7)\ 转义字符
8) | 两者之间选择一个
限定符:
举例:
0{8} 代表连续8个0连起来才会被匹配
0{2,}代表只要有两个0及以上的都会被匹配
0{2,4}代表最后匹配2个0 ,最多匹配4个0 ,优先匹配多的
修饰符:
/I 代表不区分大小写
/A 代表匹配规则必须从头开始匹配
/s 匹配一切字符
/x正则表达式中空白字符被忽略