Loading...
 

Regex Cheat Sheet

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:] Hexade­cimal 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