### 基本的元字符
. 匹配任意单个字符
| 逻辑或操作符
[]匹配字符集合中的一个字符
[^]对字符集合求非
-定义一个区间例如([A-Z])
\对下一个字符转义
### 数量元字符
*匹配前一个字符或子表达式的零次或多次重复
*?对应*匹配的懒惰型版本
+匹配前一个字符或子表达式的一次或多次重复
+?对应+匹配符的懒惰型版本
?匹配前一个字符或子表达式的零次或一次重复
{n}匹配前一个字符或子表达式的n次重复
{m,n}匹配前一个字符或子表达式至少m次至多n次重复
{n,}匹配前一个字符或者子表达式至少n次重复
{n,}?对应{n,}匹配的懒惰型版本
### 位置元字符
^匹配字符串的开头
\A匹配字符串的开头
\$匹配字符串的结束
\Z匹配字符串的结束
\<匹配单词的开头
\>匹配单词的结束
\b匹配单词边界(开头和结束)
\B对应\b的反义
### 特殊字符元字符
[\b]退格字符
\c匹配一个控制字符ctrl
\d匹配任意数字字符
\D对应\d反义
\f换页符
\n换行符
\r回车符
\s匹配一个空白字符
\S对应\s的反义
\t制表符Tab
\v垂直制表符
\w匹配任意字母数字字符或下划线字符
\W对应\w反义
\x匹配一个十六进制数字
\0匹配一个八进制数字
### 回溯引用和前后查找
()定义一个子表达式
\1匹配第一个子表达式,\2代表第二个子表达式等等
?=向前查找ftp://asdf===> ftp(?=:)====>ftp
?<=向后查找(ha: $23.45==> (?<=\$)[0-9.]+ ====>23.45)
?!负向前查找
?<!负向后查找
?()条件查找if()
?()|条件查找if()else()
### 大小写转换
\E结束\L或\U转换
\l把下一个字符转换为小写
\L把后面字符转换为小写知道\E为止
\u把下一个字符转换为大写
\U把后面字符转换为大写知道\E为止
### 匹配模式
(?m)分行匹配模式