The Regular Expression (RegEx) Cheat Sheet you always wanted
Tapajyoti Bose
Posted on August 14, 2022
I get it even though Regex is incredibly useful, it is extremely hard to master! This is a cheat sheet that provides the most common RegEx use cases that will help you whenever need a sneak peek at the Regex syntax!
Characters
Characters | Legend | Example | Sample Match |
---|---|---|---|
[abc], [a-c] | Match the given characters/range of characters | abc[abc] | abca, abcb, abcc |
[^abc], [^a-c] | Negate and match the given characters/range of characters | abc[^abc] | abcd, abce, abc1, ... |
. | Any character except line break | bc. | bca, bcd, bc1, b., ... |
\d | Any numeric character (equivalent to [0-9]) | c\d | c1, c2, c3 ... |
\D | Any non-numeric character (equivalent to [^0-9]) | c\D | ca, c., c* ... |
\w | Any alphanumeric character (equivalent to [A-Za-z0-9_]) | a\w | aa, a1, a_ ... |
\W | Any non-alphanumeric character (equivalent to [A-Za-z0-9_]) | a\W | a), a$, a? ... |
\s | Usually used for white space, but can be used for new line, tab, etc | a\s | a |
\S | Not a white space or equivalent like new line, tab, etc | a\S | aa |
\t | Matches a horizontal tab | T\tab | T ab |
\r | Matches a carriage return | AB\r\nCD | AB CD |
\n | Matches a linefeed | AB\r\nCD | AB CD |
\ | Escapes special characters | \d | 0, 1, ... |
x|y | Matches either "x" or "y" | a|b | a, b |
Assertions
Characters | Legend | Example | Sample Match |
---|---|---|---|
^ | Start of string or start of line depending on multiline mode | ^abc.* | abc, abd, abcd, ... |
$ | End of string or start of line depending on multiline mode | .*xyz$ | xyz, wxyz, abcdxyz, ... |
\b | Matches a word character is not followed by another word-character | My.*\bpie | My apple pie, ... |
\B | Matches a non-word boundary | c.*\Bcat | copycat, ... |
x(?=y) | Lookahead assertion: Matches "x" only if "x" is followed by "y" | \d+(?=€) | $1 = 0.98€, ... |
x(?!y) | Negative Lookahead assertion: Matches "x" only if "x" is followed not by "y" | \d+\b(?!€) | $1 = 0.98€ , ... |
(?<=y)x | Lookbehind assertion: Matches "x" only if "x" is preceded by "y" | (?<=\d)\d | $1 = 0.9*8*€, ... |
(?<!y)x | Negative Lookbehind assertion: Matches "x" only if "x" is not preceded by "y" | (?<!\d)\d | $1 = 0.98€, ... |
Groups
Characters | Legend | Example | Sample Match |
---|---|---|---|
(x) | Capturing group: Matches x and remembers the match | A(nt|pple) | Ant (remembers "nt") |
(?<name>x) | Capturing group: Matches x and stores it in the mentioned variable | A(?<m>nt|pple) | Ant (m = "nt") |
(?:name>x) | Non-capturing group: Matches x and does not remember the match | A(?:nt|pple) | Ant |
\n | Back reference to the last substring matching the n parenthetical | (\d)+(\d)=\2+\1 | 5+6=6+5 |
Quantifiers
Characters | Legend | Example | Sample Match |
---|---|---|---|
x* | Matches the preceding item "x" 0 or more times | a* | a, aa, aaa, ... |
x+ | Matches the preceding item "x" 1 or more times, equivalent to {1,} | a+ | aa, aaa, aaaa, ... |
x? | Matches the preceding item "x" 0 or 1 time | ab? | a, ab |
x{n} | Matches the preceding item "x" n times (n = positive integer) | ab{5}c | abbbbbc |
x{n,} | Matches the preceding item "x" at least n times (n = positive integer) | ab{2,}c | abbc, abbbc, abbbbc, ... |
x{n,m} | Matches the preceding item "x" at least n times & at most m times (n<m) | ab{2,3}c | abbc, abbbc |
NOTE
By default quantifiers are greedy (they try to match as much of the string as possible). The ?
character after the quantifier makes the quantifier non-greedy (it will stop as soon as it finds a match).
For Example: \d+?
for a test string 12345
will match only 1
, but \d+
will match the entire string 12345
Flags
Flags are put at the end of the regular expression. They are used to modify how the regular expression behaves.
For Example: /a/
for a test string a
will match a
only, but adding the flag i
(/a/i
) would match both a
and A
Characters | Legend |
---|---|
d | Generate indices for substring matches |
g | Global search |
i | Case-insensitive search |
m | Multi-line search |
s | Allows . to match newline characters
|
u | Treats a pattern as a sequence of Unicode code points |
y | Perform a sticky search that matches starting at the current position in the target string |
That's all folks!
Finding personal finance too intimidating? Checkout my Instagram to become a Dollar Ninja
Thanks for reading
Need a Top Rated Front-End Development Freelancer to chop away your development woes? Contact me on Upwork
Want to see what I am working on? Check out my Personal Website and GitHub
Want to connect? Reach out to me on LinkedIn
I have moved to Bali, Indonesia as a Digital Nomad. Follow me on Instagram to check out what I am up to.
Follow my blogs for Weekly new Tidbits on Dev
FAQ
These are a few commonly asked questions I get. So, I hope this FAQ section solves your issues.
-
I am a beginner, how should I learn Front-End Web Dev?
Look into the following articles: Would you mentor me?
Sorry, I am already under a lot of workload and would not have the time to mentor anyone.
Posted on August 14, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.