Regex

Cheatsheet

Character classes

  • . any character except newline
  • \w \d \s word, digit, whitespace
  • \W \D \S not word, digit, whitespace
  • [abc] any of a, b, or c
  • [^abc] not a, b, or c
  • [a-g] character between a & g

Anchors

  • ^abc$ start / end of the string
  • \b \B word, not-word boundary

Escaped characters

  • \. \* \\ escaped special characters
  • \t \n \r tab, linefeed, carriage return

Groups & Lookaround

  • (abc) capture group
  • \1 backreference to group #1
  • (?:abc) non-capturing group
  • (?=abc) positive lookahead
  • (?!abc) negative lookahead

Quantifiers & Alternation

  • a* a+ a? 0 or more, 1 or more, 0 or 1
  • a{5} a{2,} exactly five, two or more
  • a{1,3} between one & three
  • a*? a+? a{2,}? match as few as possible (lazy mode | non-greedy mode)
  • ab|cd match ab or cd

global match

/,/  // マッチする最初のカンマ
/,/g // マッチする全てのカンマ

multi line

  • マルチラインモードでは.*とすると行をまたげない(.は改行以外の任意の一文字のため)。 行をまたぐには、[\s\S]*とする必要がある。
  • なお、下記の例では*を*?とすることで、lazy(non-greedy)モードで検索している。 この場合、マッチする最短の文字列が選ばれる。
/<br>[\s\S]*?<br>/m;
/[a-z]/; // 小文字のa-z
/[a-z]/i; // 小文字・大文字のa-z