Getting started
字符集
Code | Description |
---|---|
\s |
匹配空白符, 等价于 [\t\v\n\r\f] |
\S |
匹配非空白符, 等价于 [^\t\v\n\r\f] |
\d |
匹配数字, 等价于 [0-9] |
\D |
匹配非数字, 等价于 [^0-9] |
\w |
匹配单词字符, 等价于 [a-zA-Z0-9_] |
\W |
匹配非单词字符, 等价于 [^a-zA-Z0-9_] |
\cx |
匹配由 x 指明的控制字符, 例如: \cM 匹配一个 Control-M 或回车符 |
量词
{n} |
n 是一个非负整数, 匹配前面的子表达式 n 次, 贪婪模式 |
{n,} |
n 是一个非负整数, 匹配前面的子表达式至少 n 次, 贪婪模式 |
{n,m} |
m 和 n 均为非负整数, 其中 n<=m , 最少匹配 n 次且最多匹配 m 次, 贪婪模式 |
* |
匹配前面的子表达式零次或多次, 等价于 {0,} , 贪婪模式 |
+ |
匹配前面的子表达式一次或多次, 等价于 {1,} , 贪婪模式 |
? |
匹配前面的子表达式零次或一次, 等价于 {0,1} , 贪婪模式 |
{n}? |
n 是一个非负整数, 匹配前面的子表达式 n 次, 惰性模式 |
{n,}? |
n 是一个非负整数, 匹配前面的子表达式至少 n 次, 惰性模式 |
{n,m}? |
m 和 n 均为非负整数, 其中 n<=m , 最少匹配 n 次且最多匹配 m 次, 惰性模式 |
*? |
匹配前面的子表达式零次或多次, 等价于 {0,}? , 惰性模式 |
+? |
匹配前面的子表达式一次或多次, 等价于 {1,}? , 惰性模式 |
?? |
匹配前面的子表达式零次或一次, 等价于 {0,1}? , 惰性模式 |
定界符
^ |
匹配开头的位置, 当正则有修饰符 m 时, 表示匹配行开头位置 |
$ |
匹配结尾的位置, 当正则有修饰符 m 时, 表示匹配行结尾位置 |
\A |
仅匹配字符串开头 |
\Z |
仅匹配字符串末尾 |
\b |
匹配单词边界, 即, \w 与 \W 、^ 与 \w 、\w 与 $ 之间的位置 |
\B |
匹配非单词边界, 即, \w 与 \w 、\W 与 \W 、^ 与 \W , \W 与 $ 之间的位置 |
特殊字符
\n |
匹配换行符 |
\r |
匹配回车符 |
\t |
匹配水平制表符 |
\v |
匹配垂直制表符 |
\f |
匹配换页符 |
\xhh |
匹配拉丁字符。比如 \xOA 等价于 \n |
\uxxxx |
匹配 Unicode 字符。比如 \u2028 匹配行终止符 |
分组与范围
. |
通配符, 匹配除了少数字符(\n )之外的任意字符 |
(ab) |
捕获型分组, 把 "ab" 当成一个整体, 比如 (ab)+ 表示 "ab" 至少连续出现一次 |
(?:ab) |
非捕获型分组, 与 (ab) 的区别是, 它不捕获数据 |
(abc|xyz) |
捕获型分支结构, 匹配 "abc" 或 "xyz" |
(?:abc|xyz) |
非捕获型分支结构, 与 (abc|xyz) 的区别是, 它不捕获数据 |
[abc] |
匹配 a 、b 、c 其中任何一个字符 |
[^abc] |
匹配除了 a 、b 、c 之外的任何一个字符 |
[a-z] |
字符范围, 匹配指定范围内的任意字符 |
[^a-z] |
负值字符范围, 匹配任何不在指定范围内的任意字符 |
\num |
向后引用, 匹配第 num 个用小括号括起来的分组, 其中 num 是从 1 开始的十进制正整数 |
修饰符
g |
全局匹配, 找到所有满足匹配的子串 |
i |
匹配过程中, 忽略英文字母大小写 |
m |
多行匹配, 把 ^ 和 $ 变成行开头和行结尾 |
s |
使用单行模式 |
POSIX
[:alnum:] |
字母字符和数字字符 |
[:alpha:] |
字母 |
[:digit:] |
数字字符 |
[:ascii:] |
ASCII 字符 |
[:blank:] |
空格字符和制表符 |
[:space:] |
空白字符 |
[:cntrl:] |
控制字符 |
[:print:] |
可打印字符 |
[:graph:] |
可打印的非空白字符 |
[:punct:] |
标点符号 |
[:upper:] |
大写字母字符 |
[:lower:] |
小写字母字符 |
[:word:] |
字母字符 |
[:xdigit:] |
十六进制字符 |
需转义字符
^ |
[ |
. |
$ |
{ |
* |
( |
) |
\ |
+ |
| |
? |
< |
> |