正则表达式备忘单
JavaScript 正则表达式速查手册,涵盖元字符、量词、分组和断言语法,正则编写快速参考与备忘。
Normal characters
| Expression | Description |
|---|---|
. or [^\n\r] |
any character excluding a newline or carriage return |
[A-Za-z] |
alphabet |
[a-z] |
lowercase alphabet |
[A-Z] |
uppercase alphabet |
\d or [0-9] |
digit |
\D or [^0-9] |
non-digit |
_ |
underscore |
\w or [A-Za-z0-9_] |
alphabet, digit or underscore |
\W or [^A-Za-z0-9_] |
inverse of \w |
\S |
inverse of \s |
Whitespace characters
| Expression | Description |
|---|---|
|
space |
\t |
tab |
\n |
newline |
\r |
carriage return |
\s |
space, tab, newline or carriage return |
Character set
| Expression | Description |
|---|---|
[xyz] |
either x, y or z |
[^xyz] |
neither x, y nor z |
[1-3] |
either 1, 2 or 3 |
[^1-3] |
neither 1, 2 nor 3 |
- Think of a character set as an
ORoperation on the single characters that are enclosed between the square brackets. - Use
^after the opening[to “negate” the character set. - Within a character set,
.means a literal period.
Characters that require escaping
Outside a character set
| Expression | Description |
|---|---|
\. |
period |
\^ |
caret |
\$ |
dollar sign |
| |
pipe |
\\ |
back slash |
\/ |
forward slash |
\( |
opening bracket |
\) |
closing bracket |
\[ |
opening square bracket |
\] |
closing square bracket |
\{ |
opening curly bracket |
\} |
closing curly bracket |
Inside a character set
| Expression | Description |
|---|---|
\\ |
back slash |
\] |
closing square bracket |
- A
^must be escaped only if it occurs immediately after the opening[of the character set. - A
-must be escaped only if it occurs between two alphabets or two digits.
Quantifiers
| Expression | Description |
|---|---|
{2} |
exactly 2 |
{2,} |
at least 2 |
{2,7} |
at least 2 but no more than 7 |
* |
0 or more |
+ |
1 or more |
? |
exactly 0 or 1 |
- The quantifier goes after the expression to be quantified.
Boundaries
| Expression | Description |
|---|---|
^ |
start of string |
$ |
end of string |
\b |
word boundary |
- How word boundary matching works:
- At the beginning of the string if the first character is
\w. - Between two adjacent characters within the string, if the first character is
\wand the second character is\W. - At the end of the string if the last character is
\w.
- At the beginning of the string if the first character is
Matching
| Expression | Description |
|---|---|
foo|bar |
match either foo or bar |
foo(?=bar) |
match foo if it’s before bar |
foo(?!bar) |
match foo if it’s not before bar |
(?<=bar)foo |
match foo if it’s after bar |
(?<!bar)foo |
match foo if it’s not after bar |
Grouping and capturing
| Expression | Description |
|---|---|
(foo) |
capturing group; match and capture foo |
(?:foo) |
non-capturing group; match foo but without capturing foo |
(foo)bar\1 |
\1 is a backreference to the 1st capturing group; match foobarfoo |
- Capturing groups are only relevant in the following methods:
string.match(regexp)string.matchAll(regexp)string.replace(regexp, callback)
\Nis a backreference to theNthcapturing group. Capturing groups are numbered starting from 1.