REGEX MEMO
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 Utility Tools
Basic Auth Generator
Convert between different date formats
bcrypt
Convert between different date formats
Benchmark Builder
Convert between different date formats
BIP39 Generator
Convert between different date formats
Camera Recorder
Convert between different date formats
Chronometer
Convert between different date formats
Crontab Generator
Convert between different date formats
Device Information
Convert between different date formats
Docker Run to Docker Compose Converter
Convert between different date formats
Email Normalizer
Convert between different date formats
Emoji Picker
Convert between different date formats
Encryption
Convert between different date formats
GIT Memoizer
Convert between different date formats
iBan Validator and Parser
Convert between different date formats
iPV4 Address Converter
Convert between different date formats
iPV4 Range Expander
Convert between different date formats
iPV4 Subnet Calculator
Convert between different date formats
iPV6 ULA Generator
Convert between different date formats
iPV6ULA Validator
Convert between different date formats
JWT Parser
Convert between different date formats
Keycode Info
Convert between different date formats
Lorem Ipsum Generator
Convert between different date formats
MAC Address Generator
Convert between different date formats
MAC Address Lookup
Convert between different date formats
Math Evaluator
Convert between different date formats
MIMI Types
Convert between different date formats
Numeronym Generator
Convert between different date formats
OTP Code Generator and Validator
Convert between different date formats
Password Strength Analyser
Convert between different date formats
Phone Parser and Formatter
Convert between different date formats
QR Code Generator
Convert between different date formats
Random Port Generator
Convert between different date formats
Regex Memo
Convert between different date formats
Regex Tester
Convert between different date formats
RSA Key Pair Generator
Convert between different date formats
Safelink Decoder
Convert between different date formats
Slugify String
Convert between different date formats
Token Generator
Convert between different date formats
Ulid Generator
Convert between different date formats
URL Encoder
Convert between different date formats
URL Parser
Convert between different date formats
User Agent Parser
Convert between different date formats
UUID Generator
Convert between different date formats
Wifi QR Code Generator
Convert between different date formats