匹配语法
基本元字符
.
: 匹配除了换行符之外的任何单个字符 \
: 在非特殊字符之前的反斜杠表示下一个字符是特殊的,不能从字面上解释。例如,没有前\的'b'通常匹配小写'b',无论它们出现在哪里。如果加了'',这个字符变成了一个特殊意义的字符,反斜杠也可以将其后的特殊字符,转义为字面量。例如,模式 /a*/ 代表会匹配 0 个或者多个 a。相反,模式 /a*/ 将 '' 的特殊性移除,从而可以匹配像 "a" 这样的字符串。 |
: 逻辑或操作符 []
:定义一个字符集合,匹配字符集合中的一个字符,在字符集合里面像 .,\这些字符都表示其本身 [^]
:对上面一个集合取非 -
:定义一个区间,例如[A-Z],其首尾字符在 ASCII 字符集里面
数量元字符
{m,n}
:匹配前面一个字符至少 m 次至多 n 次重复,还有{m}
表示匹配 m 次,{m,}
表示至少 m 次 +
: 匹配前面一个表达式一次或者多次,相当于 {1,}
,记忆方式追加(+)
,起码得有一次 *
: 匹配前面一个表达式零次或者多次,相当于 {0,}
,记忆方式乘法(*)
,可以一次都没有 ?
: 单独使用匹配前面一个表达式零次或者一次,相当于 {0,1}
,记忆方式,有吗?,有(1)或者没有(1),如果跟在任何量词*,+,?,{}
后面的时候将会使量词变为非贪婪模式(尽量匹配少的字符),默认是使用贪婪模式。比如对"123abc"
应用 /\d+/
将会返回 "123",如果使用/\d+?/
,那么就只会匹配到 "1"。
位置元字符
^
: 单独使用匹配表达式的开始 \$
: 匹配表达式的结束 \b
:匹配单词边界 \B
:匹配非单词边界 (?=p)
:匹配 p 前面的位置 (?!p)
:匹配不是 p 前面的位置
特殊元字符
\d
:[0-9]
,表示一位数字,记忆方式 digit \D
:[^0-9]
,表示一位非数字 \s
:[\t\v\n\r\f]
,表示空白符,包括空格,水平制表符(\t),垂直制表符(\v),换行符(\n),回车符(\r),换页符(\f),记忆方式 space character \S
:[^\t\v\n\r\f]
,表示非空白符 \w
:[0-9a-zA-Z]
,表示数字大小写字母和下划线,记忆方式 word \W
:[^0-9a-zA-Z]
,表示非单词字符
标志字符
g
: 全局搜索 记忆方式global i
:不区分大小写 记忆方式 ignore m
:多行搜索