Characters
| \d |
1 digit from 0 to 9 |
| \D |
1 character that is not digit |
| \w |
Letter, digit or underscore |
| \W |
Not letter, digit or underscore |
| \s |
Space, \t, \r, \n |
| \S |
Not space, \t, \r, \n |
| . |
Any characters except line break |
Quantifiers
| ? |
None or once times |
| * |
Zero or more times |
| + |
Once or more times |
| {n, m} |
n times to m times |
| {n, } |
n times to more times |
| {n} |
Exactly n times |
\d{2,6} matches 358 in ID is 358
Character classes
| [...] |
One of characters |
| [x-y] |
One of characters in range from x to y |
| [^x] |
One of charactes that is not x |
| [^x-y] |
One of characters that is not in range from x to y |
| [\d\D] |
One of characters that is digit or not digit |
[AOK] matches A, K in ATTACK
[a-zA-Z] matches a to z, A to Z in text
[3-9] matches 5, 6 in 562 dollars
Special characters
| \n |
New line |
| \r |
Carriage return |
| \t |
Tab |
| \OCTAL |
Octal character OCTAL |
| \xHEX |
Hexadecimal character HEX |
\xA9S matches ©S in ©STDIO Training
Anchors
| ^ |
Start of string or start of line in multiline pattern |
| \A |
Start of string |
| $ |
End of string or end of line in multiline pattern |
| \Z |
End of string |
| \b |
Word boundary |
| \B |
Not word boundary |
.*php$ matches account.php in file path .../account.php but does not match .../account.php.html
\bcoin matches coin in 12 coins but does not match coin in bitcoin
Groups & Logic
| xx|yy |
xx or yy |
| (...) |
Capturing group |
| (?:...) |
Non-capturing group |
| \digits |
Content of group \1, \2, \3... |
http:|ftp: matches ftp: in ftp://localhost or http: in http://localhost
Lookarrounds
| (?=...) |
Lookahead |
| (?!...) |
Negative lookahead |
| (?<=...) |
Lookbehind |
| (?<!...) |
Negative lookbehind |
(?<!http:)\/\/ matches // that has no https: before in https://training.iostream.co
Modifiers
| g |
Global match |
| i |
Case-insensitive |
| m |
Multiple lines |
| s |
Treat string as single line |
| u |
Treat pattern as Unicode |
Meta-characters
| (?<!https:)\/\/ matches // that has no https: before in https://localhost//training |
Using escape character \ in common
*Regular Expression Engine (REE) process Regular Expression. Different REEs are not fully compatible with each other.