Regex Cheat Sheet
Regex Cheat Sheet tool.
| Topic | Pattern | Meaning |
|---|---|---|
| Anchors | ^ |
Start of string (or line in /m mode) |
| Anchors | $ |
End of string (or line in /m mode) |
| Anchors | \b |
Word boundary |
| Anchors | \B |
Not a word boundary |
| Character classes | . |
Any character except newline (unless /s) |
| Character classes | \d |
Digit [0-9] |
| Character classes | \D |
Non-digit |
| Character classes | \w |
Word char [A-Za-z0-9_] |
| Character classes | \W |
Non-word char |
| Character classes | \s |
Whitespace |
| Character classes | \S |
Non-whitespace |
| Character classes | [abc] |
One of a, b, or c |
| Character classes | [^abc] |
None of a, b, c |
| Character classes | [a-z] |
Range: any lowercase letter |
| Quantifiers | * |
0 or more (greedy) |
| Quantifiers | + |
1 or more (greedy) |
| Quantifiers | ? |
0 or 1 (greedy) |
| Quantifiers | {n} |
Exactly n times |
| Quantifiers | {n,} |
At least n times |
| Quantifiers | {n,m} |
Between n and m times |
| Quantifiers | *? +? ?? {n,m}? |
Non-greedy (lazy) versions of *, +, ?, {n,m} |
| Groups | (…) |
Capturing group |
| Groups | (?:…) |
Non-capturing group |
| Groups | (?<name>…) |
Named capture (ES2018) |
| Groups | \1 |
Backreference to group 1 |
| Lookaround | (?=…) |
Positive lookahead |
| Lookaround | (?!…) |
Negative lookahead |
| Lookaround | (?<=…) |
Positive lookbehind (fixed width in JS) |
| Lookaround | (?<!…) |
Negative lookbehind |
| Flags | i |
Case-insensitive |
| Flags | g |
Global (all matches) |
| Flags | m |
^ $ match lines |
| Flags | s |
Dot matches newline |
| Flags | u |
Unicode (code point aware) |
| Flags | y |
Sticky |
| Misc | | |
Alternation (OR) |
| Misc | \ |
Escape special char |
| Misc | (?#comment) |
Comment (some engines) |