正则表达式速查表
锚点
^
: 字符串的开头或多行模式中的行的开头$
: 字符串的结尾或多行模式中的行的结尾\b
: 单词边界\B
: 非单词边界(与\b
相反)
[!NOTE]
锚点是不可量化的(即不能跟随量词)。
字符序列
.
: 除换行符外的任意字符\w
: 任意单词字符\W
: 任意非单词字符(与\w
相反)\s
: 任意空白字符\S
: 任意非空白字符(与\s
相反)\d
: 任意数字字符\D
: 任意非数字字符(与\d
相反)[abc]
: 给定集合中的一个字符(这里是a
、b
或c
)[^abc]
: 不在给定集合中的一个字符(与[abc]
相反)[a-z]
: 给定范围内的一个字符(这里是从a
到z
,包括两端)[^a-z]
: 不在给定范围内的一个字符(与[a-z]
相反)[a-zA-Z]
: 两个给定范围中的一个字符
[!TIP]
使用
\
来转义特殊字符(例如\
、/
、[
、]
、(
、)
、{
、}
等)。
量词
a?
:a
的零个或一个(等同于a{0,1}
)a*
:a
的零个或多个(等同于a{0,}
)a+
:a
的一个或多个(等同于a{1,}
)a{3}
:a
的恰好 3 个a{3,}
:a
的 3 个或更多a{3,5}
:a
的 3 到 5 个(包括两端)
[!NOTE]
a
是任何有效的可量化表达式。
分组
(ab)
: 匹配并捕获括号内的所有内容(这里是ab
)(a|b)
: 匹配并捕获其中一个字符(这里是a
或b
)(?:ab)
: 匹配括号内的所有内容,但不进行捕获
标志
g
: 全局匹配m
: 多行匹配i
: 不区分大小写匹配u
: Unicode匹配
请注意,这个速查表仅作为一个起点,绝不是正则表达式所有功能和细微差别的完整指南。您还可以阅读6个您今天可以使用的JavaScript正则表达式技巧,深入了解一些更高级的功能。