Regular Expressions Cheat Sheet
A regular expression (regex or regexp) is a sequence of characters that specifies a search pattern. Usually such patterns are used by string-searching algorithms for "find" or "find and replace" operations on strings, or for input validation.
The below tables assists you on how to use different regular expressions:
Regular Expression Basics
Character | Explanation |
. | Anything. Any character except newline |
a | The character a |
ab | The string ab |
a|b | a or b |
a* | 0 or more a's |
\ | Escapes a special character |
Regular Expression Quantifiers
Character | Explanation |
* | 0 or more |
+ | 1 or more |
? | 0 or 1 |
{2} | Exactly 2 |
{2, 5} | Between 2 and 5 |
{2,} | 2 or more |
Regular Expression Groups
Character | Explanation |
(...) | Capturing group |
(?P<Y>...) | Capturing group named Y |
(?:...) | Non-capturing group |
(?>...) | Atomic group |
(?|...) | Duplicate group numbers |
\Y | Match the Y'th captured group |
(?P=Y) | Match the named group Y |
(?R) | Recurse into entire pattern |
(?Y) | Recurse into numbered group Y |
(?&Y) | Recurse into named group Y |
\g{Y} | Match the named or numbered group Y |
\g<Y> | Recurse into named or numbered group Y |
(?#...) | Comment |
Regular Expression Character Classes
Character | Explanation |
[ab-d] | One character of: a, b, c, d |
[^ab-d] | One character except: a, b, c, d |
[\b] | Backspace character |
\d | One digit |
\D | One non-digit |
\s | One whitespace |
\S | One non-whitespace |
\w | One word character |
\W | One non-word character |
Regular Expression Assertions
Character | Explanation |
^ | Start of string |
\A | Start of string, ignores m flag |
$ | End of string |
\Z | End of string, ignores m flag |
\b | Word boundary |
\B | Non-word boundary |
\G | Start of match |
(?=...) | Positive lookahead |
(?!...) | Negative lookahead |
(?<=...) | Positive lookbehind |
(?<!...) | Negative lookbehind |
(?()|) | Conditional |
Regular Expression Flags
Character | Explanation |
i | Ignore case |
m | ^ and $ match start and end of line |
s | . matches newline as well |
x | Allow spaces and comments |
J | Duplicate group names allowed |
U | Ungreedy quantifiers |
(?iLmsux) | Set flags within regex |
Regular Expression Special Characters
Character | Explanation |
\n | Newline |
\r | Carriage return |
\t | Tab |
\0 | Null character |
\YYY | Octal character YYY |
\xYY | Hexadecimal character YY |
\x{YY} | Hexadecimeal character YY |
\cY | Control character Y |
Regular Expression Posix Classes
Character | Explanation |
[:alnum:] | Letters and digits |
[:alpha:] | Letters |
[:ascii:] | Ascii codes 0 - 127 |
[:blank:] | Space or tab only |
[:cntrl:] | Control characters |
[:digit:] | Decimal digits |
[:graph:] | Visible characters, except space |
[:lower:] | Lowercase letters |
[:print:] | Visible characters |
[:punct:] | Visible punctuation characters |
[:space:] | Whitespace |
[:upper:] | Uppercase letters |
[:word:] | Word characters |
[:xdigit:] | Hexadecimal digits |
Last updated