基本元字符
. 匹配任意单个字符
| 逻辑或操作
[] 匹配字符集中的一个字符
[^] 对字符集求非
- 定义一个区间
\ 对下一个字符转义
* 匹配前一个字符(子表达式)的零次或多次重复
*? *的懒惰型版本
+ 匹配前一个字符(子表达式)的一次或多次重复
+? +的懒惰型版本
? 配前一个字符(子表达式)的零次或多次重复
{n} 匹配前一个字符(子表达式)的n次重复
{m,n} 匹配前一个字符(子表达式)只是m次至多n次的重复
{n,} 匹配前一个字符(子表达式)n次或更多次数的重复
{n,}? {n,}的懒惰型版本
位置元字符
^ 匹配字符串的开头
\A 匹配字符串的开头
$ 匹配字符串的结束
\Z 匹配字符串的结束
\< 匹配单词的开始
\> 匹配单词的结束
\b 匹配单词边界
\B \b的反义
特殊字符元字符
[/b] 匹配一个退格字符
/c 匹配一个控制字符
/d 匹配任意一个数字字符,等价于[0-9]
/D /d的反义
/f 换页符
/n 换行符
/r 回车符
/s 匹配一个空白字符
/S /s的反义
/t 制表符
/v 垂直制表符
/w 匹配任意字母、数字、下划线。等价于[A-Za-z0-9_]
/W /w的反义
/x 匹配一个十六进制数字
/0 匹配一个八进制数字
回溯引用和前后查找
( ) 定义一个子表达式
/1 第一个子表达式,同理/2表示第2个子表达式。/0通常表示整个正则表达式。
?= 向前查找
?<= 向后查找
?! 负向前查找
?!= 负向后查找
?() 条件(if then)
?()| 条件(if then else)