Skip to content

正则表达式速查表

锚点

  • ^: 字符串的开头或多行模式中的行的开头
  • $: 字符串的结尾或多行模式中的行的结尾
  • \b: 单词边界
  • \B: 非单词边界(与 \b 相反)

[!NOTE]

锚点是不可量化的(即不能跟随量词)。

字符序列

  • .: 除换行符外的任意字符
  • \w: 任意单词字符
  • \W: 任意非单词字符(与 \w 相反)
  • \s: 任意空白字符
  • \S: 任意非空白字符(与 \s 相反)
  • \d: 任意数字字符
  • \D: 任意非数字字符(与 \d 相反)
  • [abc]: 给定集合中的一个字符(这里是 abc
  • [^abc]: 不在给定集合中的一个字符(与 [abc] 相反)
  • [a-z]: 给定范围内的一个字符(这里是从 az,包括两端)
  • [^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): 匹配并捕获其中一个字符(这里是ab
  • (?:ab): 匹配括号内的所有内容,但不进行捕获

标志

  • g: 全局匹配
  • m: 多行匹配
  • i: 不区分大小写匹配
  • u: Unicode匹配

请注意,这个速查表仅作为一个起点,绝不是正则表达式所有功能和细微差别的完整指南。您还可以阅读6个您今天可以使用的JavaScript正则表达式技巧,深入了解一些更高级的功能。