正则表达式的基本语法
字符
字符 | 意义 |
---|---|
. | 任意英文字母 |
\ | 反斜杠, 单独的反斜杠做为转义字符,与其他特殊字符一起使用。如果想匹配反斜杠本身,需要转义。两个反斜杠实际匹配一个反斜杠n字符的8进制表示.n 在0至7之间取值 |
nn | 字符的8进制表示.n 在0至7之间取值 |
mnn | 字符的8进制表示. m 在0至3之间取值, n 在0至7之间取值 |
\xhh | 字符的16进制表示. |
\uhh hh | 字符的16进制表示 0xhhhh. 对应unicode 编码字符 |
\t | 缩进符. |
\n | 换行符 (unicode: ‘\u000A’) |
\r | 回车符 (unicode: ‘\u000D’) |
\f | 制表符 (unicode: ‘\u000C’) |
\a | 警报(铃声)字符 (unicode: ‘\u0007′) |
\e | 转义符 (unicode: ‘\u001B’) |
\cx | 控制符 x |
字符分类
表达式 | 意义 |
---|---|
[abc] | 匹配 a, 或 b 或 c |
[^abc] | 匹配不是a,b,c 的字符,是否定匹配 |
[a-zA-Z] | 匹配a 到 z ,A到Z 直接的字符,是范围匹配 |
[a-d[m-p]] | 匹配a到d之间字符或 m到p之间字符,是并集匹配 |
[a-z&&[def]] | 匹配 d, e, 或 f. 是交集匹配 (这里是在范围 a-z和字符def之间取交集). |
[a-z&&[^bc]] | 匹配a-z 之间所有字符,排除bc的字符。是减法匹配 |
[a-z&&[^m-p]] | 匹配a-z 之间所有字符,排除m-p之间的字符是减法匹配 |
内置字符分类
字符 | 意义 |
---|---|
. | 匹配任意一个字符,根据创建Pattern是传入的标志,可能匹配行结尾符 |
\d | 匹配任意数字 [0-9] |
\D | 匹配任意非数字 [^0-9] |
\s | 匹配任意空白符 (空格, 缩进, 换行,回车) |
\S | 匹配任意非空白符 |
\w | 匹配任意单词 |
\W | 匹配任意非单词 |
边界匹配
符号 | 意义 |
---|---|
^ | 匹配行首 |
$ | 匹配行尾 |
\b | 匹配单词边界 |
\B | 匹配非单词边界 |
\A | 匹配文本开头 |
\G | 匹配前一匹配项结尾 |
\Z | Matches the end of the input text except the final terminator if any |
\z | 匹配文本结尾 |
量词
贪婪模式 | 饥饿模式 | 独占模式 | 意义 |
---|---|---|---|
X? | X?? | X?+ | 匹配0或1次 |
X* | X*? | X*+ | 匹配0或多次 |
X+ | X+? | X++ | 匹配1或多次 |
X{n} | X{n}? | X{n}+ | 匹配n次 |
X{n,} | X{n,}? | X{n,}+ | 匹配最少n次 |
X{n, m} | X{n, m}? | X{n, m}+ | 匹配最少n次,最多m次 |