Regular Expressions
Regular expression is a special language using which it is possible to look for matches in text. Regular expressions allow to use more complicated filters than simple text match.
Regular expressions are supported in:
Sample patterns
These patterns are intended for reference purposes and have not been extensively tested. Please use with caution and test thoroughly before use. |
^$ |
Empty value |
.+ |
Non-empty (any) value |
([A-Za-z0-9-]+) |
Letters, numbers and hyphens |
(\d{1,2}\/\d{1,2}\/\d{4}) |
Date, for example |
([^\s]+(?=\.(jpg|gif|png))\.\2 |
JPG, GIF or PNG image |
(^[1-9]{1}$|^[1-4]{1}[0-9]{1}$|^50$) |
Any number from 1 to 50 inclusive |
(#?([A-Fa-f0-9]){3}(([A-Fa-f0-9]){3})?) |
Valid hexadecimal color code |
((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,15}) |
8 to 15 character string with at least one upper case letter, one lower case letter and one digit (useful for passwords) |
(\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6}) |
Email addresses |
(\<(/?[^\>]+)\>) |
HTML tags |
Items marked with "+" should work in most regular expressions implementations. |
Anchors
^ |
Start of line + |
\A |
Start of string + |
$ |
End of line + |
\Z |
End of string + |
\b |
Word boundary + |
\B |
Not word boundary + |
\< |
Start of word |
\> |
End of word |
Character classes
\c |
Control character |
\s |
White space |
\S |
Not white space |
\d |
Digit |
\D |
Not digit |
\w |
Word |
\W |
Not word |
\xhh |
Hexadecimal character hh |
\Oxxx |
Octal character xxx |
POSIX character classes
[:upper:] |
Upper case letters |
[:lower:] |
Lower case letters |
[:alpha:] |
All letters |
[:alnum:] |
Digits and letters |
[:digit:] |
Digits |
[:xdigit:] |
Hexadecimal digits |
[:punct:] |
Punctuation |
[:blank:] |
Space and tab |
[:space:] |
Blank characters |
[:cntrl:] |
Control characters |
[:graph:] |
Printed characters |
[:print:] |
Printed characters and spaces |
[:word:] |
Digits, letters and underscore |
Assertions
?= |
Lookahead assertion + |
?! |
Negative lookahead + |
?<= |
Lookbehind assertion + |
?!= or ? |
Negative lookbehind + |
?> |
Once-only Subexpression |
?() |
Condition [if then] |
?()| |
Condition [if then else] |
?# |
Comment |
Quantifiers
* |
0 or more |
*? |
0 or more, non-greedy |
+ |
1 or more |
+? |
1 or more, non-greedy |
? |
0 or 1 |
?? |
0 or 1, non-greedy |
{3} |
Exactly 3 |
{3,} |
3 or more |
{3,5} |
3, 4 or 5 |
{3,5}? |
3, 4 or 5, non-greedy |
Special characters
\ |
Escape character |
\n |
New line |
\r |
Carriage return |
\t |
Tab |
\v |
Vertical tab |
\f |
Form feed |
\a |
Alarm |
[\b] |
Backspace |
\e |
Escape |
\N{name} |
Named character |
String replacement (Backreferences)
$n |
nth non-passive group |
$2 |
"xyz" in /^(abc(xyz))$/ |
$1 |
"xyz" in /^(?:abc)(xyz)$/ |
$` |
Before matched string |
$' |
After matched string |
$+ |
Last matched string |
$& |
Entire matched string |
$_ |
Entire input string |
$$ |
Literal "$" |
Ranges
. |
Any character except new line (\n) |
(a|b) |
a or b |
(…) |
Group |
(?:…) |
Passive group |
[abc] |
Range (a or b or c) |
[^abc] |
Not a or b or c |
[a-q] |
Letter between a and q |
[A-Q] |
Upper case letter between A and Q |
[0-7] |
Digit between 0 and 7 |
\n |
nth group/subpattern |
Ranges are inclusive. |