一、正则表达式
正则表达式存在的意义:过滤和检索。
正则表达式,又称规则表达式(Regular Expression )常简写为regex,regexp,RE;
二、常用正则表达式函数
php中使用正则表达式一定要添加正则表达式的标识符号//
-
Preg_match_all(正则表达式,匹配字符串,匹配到的东西放入数组)
进行全局正则表达式的匹配,可多次匹配,返回共计匹配的次数存到arr数组。
-
preg_replace (正则表达式,替换成什么,匹配字符串)
返回替换后的结果
三、作用
正则表达式通常被用来检索、替换符合规则的文本
四、特点
- 灵活性、逻辑性和功能性强
- 可以快速地用极简单的方式达到支付出的复杂控制
五、用途
- 判断字符串是否符合某规则
- 从一个字符串中找出符合规则的所以子字符串
六、常用字符
说明 | 符号 |
---|---|
数字 | \d |
非字符 | \D |
空白字符(空格、制表符、换页符等) | \s |
非空白字符 | \S |
制表符 | \t |
回车符 | \r |
换行符 | \n |
单词字符(26个英文字母+数字+下划线) | \w |
非单词字符 | \W |
七、字符集合
字符集合:[ 单个字符或字符区间] ,用于匹配集合内字符
如:
- [a-z] 表示a-z 26个小写字母
- [ 0-9a-h] 表示0-9 10个数字和a-z 8个字母
- [134a-h] 表示包含数字1,3,5和字母a-h 8个字母
注意:两个不同字符段间请勿使用逗号,隔开
八、反选字符
非集:[\^单个字符或区间],用于匹配非集合内字符]
- 反选字符:^
- [^] 注意:中括号内^ 才是反选
- [^0-9] 表示匹配所有非数字字符
- [^a-zA-Z] 表示匹配所有非字母字符
九、关键字
关键字 | 描述 |
---|---|
^ | 匹配输入字符串的开始位置 |
$ | 匹配输入字符串的结尾位置 |
() | 标记一个子表达式的开始和结束位置 |
* | 匹配前面的子表达式零次或多次 |
+ | 匹配前面的子表达式一次或多次 |
. | 匹配除换行符\n之外的任意单个字符 |
[ | 标记一个中括号表达式的开始 |
? | 匹配前面的子表达式零次或一次 |
|将下一个字符标记为特殊字符原来的本意 | |
{ | 标记限定符表达式的开始 |
| | 指明两项之间的一项 |
十、限定符
字符 | 描述 |
---|---|
{n} | n为非负数,匹配连续的字符n次 |
{n,} | n为非负数,匹配连续的字符n次及以上 |
{n,m} | n、m均为非负数,n <=m,匹配连续的字符 至少n次,至多m次 |
十一、修饰符
修饰符 | 描述 |
---|---|
/i | 不区分大小写 |
/A | 匹配规则必须从头开始匹配 |
/s | 将匹配一切字符 |
/X | 正则表达式中的空白字符将会被忽略 |
注意:写在正则表达式的“外面“ /a/i。
十二、函数
PHP中使用正则表达式一定要加/ 正则表达式内容 /
- preg_match(正则表达式,匹配的字符串)
匹配第一个匹配正则的子字符串,未找到返回0.找到返回1 - preg_grep()
匹配第一个匹配正则的字符串数组,包含匹配的字符串和匹配的单元 - preg_match_all(正则表达式,匹配的字符串,输出的二维数组)
能匹配所有的子字符串,返回子字符串匹配的数量 - pre_replace(正则表达式,替换的字符串,匹配的字符串)
将所有匹配正则表达式的字符串进行替换