Regular Expressions Cheat Sheet
^ The pattern has to appear at the beginning of a line. | ^cat matches any string that begins with cat
|
$ The pattern has to appear at the end of a line. | cat$ matches any string that ends with cat
|
. Matches any character. | cat. matches catT and cat2 but not catty
|
[] Bracket expression. Matches one of any characters enclosed. | gr[ae]y matches gray or grey
|
[^] Negates a bracket expression. Matches one of any characters EXCEPT those enclosed. | 1[02] matches 13 but not 10 or 12
|
[-] Range. Matches any characters within the range. | [1-9] matches any single digit EXCEPT 0
|
? Preceeding item must match one or zero times. | colou?r matches color or colour but not colouur
|
+ Preceeding item must match one or more times. | be+ matches be or bee but not b
|
* Preceeding item must match zero or more times. | be* matches b or be or beeeeeeeeee
|
() Parentheses. Creates a substring or item that metacharacters can be applied to | a(bee)?t matches at or abeet but not abet
|
{n} Bound. Specifies exact number of times for the preceeding item to match. | [0-9]{3} matches any three digits
|
{n,} Bound. Specifies minimum number of times for the preceeding item to match. | [0-9]{3,} matches any three or more digits
|
{n,m} Bound. Specifies minimum and maximum number of times for the preceeding item to match. | [0-9]{3,5} matches any three, four, or five digits
|
| Alternation. One of the alternatives has to match. | July (first|1st|1) will match July 1st but not July 2 |
POSIX Character Classes
[:alnum:] alphanumeric character | [[:alnum:]]{3} matches any three letters or numbers, like 7Ds
|
[:alpha:] alphabetic character, any case | [[:alpha:]]{5} matches five alphabetic characters, any case, like aBcDe
|
[:blank:] space and tab | [[:blank:]]{3,5} matches any three, four, or five spaces and tabs
|
[:digit:] digits | [[:digit:]]{3,5} matches any three, four, or five digits, like 3 , 05 , 489
|
[:lower:] lowercase alphabetics | [[:lower:]] matches a but not A
|
[:punct:] punctuation characters | [[:punct:]] matches ! or . or , but not a or 3
|
[:space:] all whitespace characters, including newline and carriage return | [[:space:]] matches any space, tab, newline, or carriage return
|
[:upper:] uppercase alphabetics | [:upper:] matches A but not a
|
[:xdigit:] Hexadecimal digits | |
[:cntrl:] Control characters | |
[:graph:] Printed characters | |
[:print:] Printed characters and spaces | |
[:word:] Digits, letters and underscore |
Perl-Style Metacharacters
//
Default delimiters for pattern | /colou?r/
matches color
or colour
i
Append to pattern to specify a case insensitive match | /colou?r/i
matches COLOR
or Colour
\b
A word boundary, the spot between word (\w)
and non-word (\W)
characters | /\bfred\b/i
matches Fred
but not Alfred
or Frederick
\B
A non-word boundary | /fred\B/i
matches Frederick
but not Fred
\d
A single digit character | /a\db/i
matches a2b
but not acb
\D
A single non-digit character | /a\Db/i
matches aCb
but not a2b
\n
The newline character. (ASCII 10) | /\n/
matches a newline
\r
The carriage return character. (ASCII 13) | /\r/
matches a carriage return
\s
A single whitespace character | /a\sb/
matches a b
but not ab
\S
A single non-whitespace character | /a\Sb/
matches a2b
but not a b
\t
The tab character. (ASCII 9) | /\t/
matches a tab.
\w
A single word character - alphanumeric and underscore | /\w/
matches 1
or _
but not ?
\W
A single non-word character | /a\Wb/i
matches a!b
but not a2b