正则笔记

2.正则中的常用的非打印字符

字符 含义
\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]

3.正则中的元字符

字符 含义
* 匹配0次、1次、或多次其前的原子
+ 匹配1次或多次
匹配0次或1次
. 匹配匹配除换行符外的任一字符
| 匹配两个或者多个分支选择
表示前面的原子出现n次
表示前面的原子至少出现n次
表示签名的原子至少n次,至多m次
^或\A 匹配输入字符串的开始位置,或多行模式的开头,紧随一换行符之后
$或\Z 匹配输入字符串的结束位置,或多行模式的结尾,紧随一换行符之前
\b 匹配单词的边界
\B 匹配除单词边界以外的部分
[] 匹配方括号中指定的任一原子
[^] 匹配除方括号中原子以外的任一字符
() 匹配其整体为一个原子

3.模式修正符

修正符 含义
i 不区分大小写
m 将字符串视为多行
s 若设置此修正符,则圆点符“.”匹配所有字符,包括换行符,将字符串视作单行
x 空白忽略不计,除非空白已被转义
e 只用于preg_replace()函数中,在替换字符串中对逆向引用做正常的替换,将其作为PHP代码求值,并用其结果来替换所搜索的字符串
U 本修正符反转了匹配数量的值使其不是默认的重复,而变成在后面跟上“?”才变得重复,与perl语言不兼容,也可通过在模式中设定(U)修正符或者在数量符之后跟一个问号来使用此项
D 美元字符仅匹配目标字符串的结尾,没有此选项时,如果最后一个字符是换行符,则美元符号也会匹配此符号之前的内容。如果设定了m修正符,在忽略此项

4.模式匹配顺序

顺序 字符 含义
1 \ 转义符
2 () (?😃 (?=) [] 模式单元和原子表
3 * + ? {n} {n,} 重复匹配
4 ^ $ \b \B \A \Z 边界限制
5 | 模式选择
posted @ 2022-07-15 16:45  熊先生不开玩笑  阅读(33)  评论(0)    收藏  举报