30秒学会 JavaScript 片段 · 2023年6月18日

30秒学会 JavaScript 片段 – Regular Expressions Cheat Sheet

Anchors

  • ^: start of the string or the start of a line in a multiline pattern
  • $: end of the string or the end of a line in a multiline pattern
  • \b: word boundary
  • \B: not word boundary (opposite of \b)

[!NOTE]

Anchors are non-quantifiable (i.e. cannot be followed by a quantifier).

Character sequences

  • .: any character except line breaks
  • \w: any word character
  • \W: any non-word character (opposite of \w)
  • \s: any whitespace character
  • \S: any non-whitespace character (opposite of \s)
  • \d: any digit character
  • \D: any non-digit character (opposite of \d)
  • [abc]: a single character in the given set (here a, b or c)
  • [^abc]: a single character not in the given set (opposite of [abc])
  • [a-z]: a single character in the given range (here between a and z inclusive)
  • [^a-z]: a single character not in the given range (opposite of [a-z])
  • [a-zA-Z]: a single character in either of the given ranges

[!TIP]

Use \ to escape special characters (e.g. \, /, [, ], (, ), {, } etc.).

Quantifiers

  • a?: zero or one of a (equal to a{0,1})
  • a*: zero or more of a (equal to a{0,})
  • a+: one or more of a (equal to a{1,})
  • a{3}: exactly 3 of a
  • a{3,}: 3 or more of a
  • a{3,5}: between 3 and 5 of a (inclusive)

[!NOTE]

a is any valid quantifiable expression.

Groups

  • (ab): match and capture everything enclosed (here exactly ab)
  • (a|b): match and capture either one character (here a or b)
  • (?:ab): match everything enclosed, without capturing

Flags

  • g: Global
  • m: Multiline
  • i: Case insensitive
  • u: Unicode

Note that this cheatsheet is meant only as a starting point and is by no means a complete guide to all the features and nuances of regular expressions. You can also read 6 JavaScript Regular Expression features you can use today for a deeper dive into some more advanced features.

翻译自:https://www.30secondsofcode.org/js/s/regexp-cheatsheet