正则表达式是由普通字符(例如字符a 到z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。 正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
基本元字符
元字符 |
说明 |
. |
匹配任意单个字符 |
| |
逻辑或操作符 |
[] |
匹配字符集合中的一个字符 |
[^] |
对字符集求非 |
- |
定义一个区间(e.g. [A-Z]) |
|对下一个字符进行转义 |
|
数量元字符
元字符 |
说明 |
* |
匹配前一个字符(子表达式)的零次or多次 |
*? |
*的懒惰版本 |
+ |
匹配前一个字符(子表达式)的一次or多次 |
+? |
+的懒惰版本 |
? |
匹配前一个字符(子表达式)的零次or一次 |
{n} |
匹配前一个字符(子表达式)的n次 |
{m, n} |
匹配前一个字符(子表达式)的m-n次 |
{n, } |
匹配前一个字符(子表达式)至少n次 |
{n, }? |
{n, }的懒惰版本 |
位置元字符
元字符 |
说明 |
^ |
匹配字符串的开头 |
\A |
匹配字符串的开头 |
$ |
匹配字符串的结束 |
\Z |
匹配字符串的结束 |
< |
匹配单词的开头 |
> |
匹配单词的结束 |
\b |
匹配单词的边界(开头and结束) |
\B |
\b的反义 |
特殊字符元字符
元字符 |
说明 |
[\b] |
退格字符 |
\c |
匹配一个控制字符 |
\d |
匹配任意数字字符 |
\D |
\d的反义 |
\f |
换页符 |
\n |
换行符 |
\r |
回车符 |
\s |
匹配一个空白字符 |
\S |
\s的反义 |
\t |
制表符 |
\v |
垂直制表符 |
\w |
匹配任意字母数字字符or下划线字符 |
\W |
\w的反义 |
\x |
匹配一个十六进制数字 |
\0 |
匹配一个八进制数字 |
回溯引用和前后查找
元字符 |
说明 |
() |
定义一个子表达式 |
\1 |
匹配第1个子表达式;\n表示匹配第n个子表达式 |
?= |
向前查找 |
?<= |
向后查找 |
?! |
负向前查找 |
?<! |
负向后查找 |
?() |
条件(if then) |
?()| |
条件(if then... else...) |
大小写转换
元字符 |
说明 |
\E |
结束\L or \U转换 |
\l |
把下一个字符转换为小写 |
\L |
把后面的字符转换为小写,直到遇到\E |
\u |
把下一个字符转换为大写 |
\U |
把后面的字符转换为大写,直到遇到\E |
匹配模式