Regex Memo
A cheatsheet and tester for common regular expressions.
Normal characters
| Expression | Description |
|---|---|
| . or [^ |
] | 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 |
| tab
| newline
| 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 OR operation 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 |
| 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 w and the second character is W.
- At the end of the string if the last character is w.
Matching
| Expression | Description |
|---|---|
| foo | 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)
- \N is a backreference to the Nth capturing group. Capturing groups are numbered starting from 1.
References and tools
Related Tools in Developer & Network Utilities
More browser-based utilities in this collection
Basic Auth Generator
Generate the 'Authorization' header value for HTTP Basic Authentication.
bcrypt
A tool for hashing and verifying passwords using the bcrypt algorithm.
Benchmark Builder
Convert between different date formats
BIP39 Generator
Generate BIP39 mnemonic phrases for creating deterministic cryptocurrency wallets.
Camera Recorder
Record video directly from your webcam or camera in your browser.
Chronometer
A simple and accurate online stopwatch to measure elapsed time.
Crontab Generator
Easily create and schedule cron jobs with a user-friendly interface.
Device Information
View detailed information about your current device and browser.