Regular Expressions Reference Sheet | ||
| Character | Definition | Example | 
^  | The pattern has to appear at the beginning of a string. | ^cat matches any string that begins with cat | 
$  | The pattern has to appear at the end of a string. | 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 | ||
| Character | Definition | Example | 
[: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 | 
Perl-Style Metacharacters | ||
| Character | Definition | Example | 
//  | 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 |