:换行/回车符
:制表符
d:数字(与[0-9]匹配相同)
D:非数字(与[^0-9]匹配相同)
w:单词字符(与[0-9a-zA-Z]匹配相同)
W:非单词字符
s:空格字符(与[
f]相同)
S:非空格字符
[sS]+ [sS]* :匹配任意字符,包括换行符
元字符:
[] 包围一个字符类,字符类包括:[0-9] [a-z] [a-zA-Z] 等类似。
() 包围一个字符分组或定义一个反引用
$ 匹配行尾
^ 匹配行首
* 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *
+ 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +
? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符 ?
. 匹配除换行之外的任何字符
|管道符。例如:dog|cat:表示或者匹配dog或者匹配cat
老是忘记:
正则默认是贪婪匹配:.*
如果想要飞贪婪匹配:.*?
php UTF-8下测试---- 匹配字符串中是否包含中文: preg_match('/[x80-xff]/', $str); 1. GBK (GB2312/GB18030) x00-xff GBK双字节编码范围 x20-x7f ASCII xa1-xff 中文 gb2312 x80-xff 中文 gbk 2. UTF-8 (Unicode) u4e00-u9fa5 (中文) x3130-x318F (韩文 xAC00-xD7A3 (韩文) u0800-u4e00 (日文)*/
常用元字符
代码 | 说明 |
---|---|
. | 匹配除换行符以外的任意字符 |
w | 匹配字母或数字或下划线或汉字 |
s | 匹配任意的空白符 |
d | 匹配数字 |
匹配单词的开始或结束 | |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
常用限定符
代码/语法 | 说明 |
---|---|
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
常用反义词
代码/语法 | 说明 |
---|---|
W | 匹配任意不是字母,数字,下划线,汉字的字符 |
S | 匹配任意不是空白符的字符 |
D | 匹配任意非数字的字符 |
B | 匹配不是单词开头或结束的位置 |
[^x] | 匹配除了x以外的任意字符 |
[^aeiou] | 匹配除了aeiou这几个字母以外的任意字符 |