正则表达式速查表
锚点
^: 字符串的开头或多行模式中的行的开头$: 字符串的结尾或多行模式中的行的结尾\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正则表达式技巧,深入了解一些更高级的功能。