{} () \ $ ^ * + | . ?
对元字符进行转义:\+元字符
2.特殊字符:
要用一个ASCII来表示一个字符:\x+两位的十六进制数
用八进制数来表示十六进制数:\+八进制数
表示Unicode字符:\u+四位十六进制数
其他特殊字符:
字符 | 描述 |
\t | 制表符 |
\n | 换行符 |
\r | 回车符 |
\f | 换页符 |
\a | alert字符 |
\e | escape字符 |
\cX | 与X相对应的控制字符 |
\b | 回退字符 |
\v | 垂直制表符 |
\0 | 空字符 |
3.字符类
字符类是用来测试字符的组合。
a.简单类:"bat","cat","fat"等,简单的字符组合。
b.负向类:使用负向类(negation class),它可以指定要排除的字符。要匹配除了a和b的所有字符,那么这个字符类就是[^ab]。脱字符号(^)告诉正则表达式字符不能匹配后面跟着的字符。
c.范围类(range class):指定从a到z之间的范围:[a-z]。这里最关键的地方是那条横线(-),也可以使用负向范围:[^a-z];
D:组合类(combination class):由几种其他的类组合而成的字符类。如果要匹配所有的从a-m的字母与及数字1-4,以及一个换行符:那么所用到的类应该是这样的:[a-m1-4\n]。注意中间不能为空格。
E:预定义类:由于某些模式会反复用到,所以可以使用一组预定义的字符类让我们理方便地指定复杂类。
代码 | 等同于 | 匹配 |
. | [^\n\r] | 除了换行符和回车符之外的任意字符 |
\d | [0-9] | 数字 |
\D | [^0-9] | 非数字 |
\s | [\t\n\xoB] | 空白字符 |
\S | [^\t\n\xoB] | 非空白字符 |
\w | [a-zA-Z_0-9] | 单词字符 |
\W | [^a-zA-Z_0-9] | 非单词字符 |