84 lines
4.9 KiB
Markdown
84 lines
4.9 KiB
Markdown
# Regular Expressions Cheat Sheet
|
||
|
||
A regular expression specifies a set of strings that matches it. This cheat sheet is based off Python 3's Regular Expressions (http://docs.python.org/3/library/re.html) but is designed for searches within Sublime Text.
|
||
|
||
## Special Characters
|
||
|
||
| | |
|
||
| --- | ----------------------------------------------------------- |
|
||
| `\` | Escapes special characters or signals a special sequence. |
|
||
| `.` | Matches any single character except a newline. |
|
||
| `^` | Matches the start of the string. |
|
||
| `$` | Matches the end of the string |
|
||
| `*` | Greedily matches 0 or more repetitions of the preceding RE. |
|
||
| | |
|
||
| | |
|
||
| | |
|
||
| | |
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
`*?` Matches 0 or more repetitions of the preceding RE.
|
||
|
||
+ Greedily matches 1 or more repetitions of the preceding RE.
|
||
|
||
+? Matches 1 or more repetitions of the preceding RE.
|
||
? Greedily matches 0 or 1 repetitions of the preceding RE.
|
||
?? Matches 0 or 1 repetitions of the preceding RE.
|
||
A|B Matches A, if A is unmatched then matches B, where A and B are arbitrary REs.
|
||
{m} Matches exactly m many repetitions of the previous RE.
|
||
{m,n} Greedily matches from m many to n many repetitions of the previous RE.
|
||
{m,n}? Matches m many to n many repetitions of the previous RE.
|
||
|
||
[...] Indicates a set of characters to match.
|
||
[amk] Matches 'a', 'm', or 'k'.
|
||
[a-z] Matches 'a' through 'z'.
|
||
[a-f0-7] Matches 'a' through 'f' or '0' through '7'.
|
||
[a\-z] Matches 'a', '-', or 'z'.
|
||
[a-] Matches 'a' or '-'.
|
||
[-a] Matches 'a' or '-'.
|
||
[(+*)] Matches '(', '+', '*', or ')'. [] matches special characters literally.
|
||
[\w] Matches the character class for '\w'. See character classes.
|
||
[^5] Matches anything other than '5'. '^' forms the complementary set only as the first character in a set.
|
||
[]()] Matches ']', '(', and ')'. ']' is taken literally only as the first character in a set.
|
||
[()\]] Matches ']', '(', and ')'.
|
||
|
||
(...) Matches the RE inside the parenthesis and assigns a new group.
|
||
(?P<name>...) The RE matched is accessible by the group indicated by name.
|
||
|
||
(?...) Extension notation which changes a RE's behavior. These do not assign a new group.
|
||
(?aiLmsux) Sets the corresponding flag to each letter. Does not work within Sublime Text.
|
||
(?:...) A non-capturing version of parenthesis. The matched substring cannot be retrieved later.
|
||
(?P=name) Matches the substring matched by the group named name.
|
||
(?#...) A comment, the contents are ignored.
|
||
(?=...) Lookahead assertion, the preceding RE only matches if this matches.
|
||
(?!...) Negative lookahead assestion, the preceding RE only matches if this doesn't match.
|
||
(?<=...) Positive lookbehind assertion, the following RE will only match if preceeded with this fixed length RE.
|
||
(?<!...) Negative lookbehind assertion, the following RE will only match if not preceeded with this fixed length RE.
|
||
(?(id)true|false) If group id exists then uses the true RE, else use the false RE.
|
||
|
||
> Character classes
|
||
> \1 Matches the contents of the group labelled by the same number. Acceptable numbers are 1-99.
|
||
> \A Matches at the start of the current string.
|
||
> \b Matches the empty string at the beginning or end of a word. \b matches the boundary between \w and \W.
|
||
> \B Matches the empty string not at the beginning or end of a word.
|
||
> \d Matches any Unicode decimal digit, including 0-9.
|
||
> \D Matches any Unicode non-decimal digit.
|
||
> \s Matches any Unicode whitespace character, including ' ', \t, \n, \r, \f and \v.
|
||
> \S Matches any Unicode non-whitespace character.
|
||
> \w Matches any Unicode word character, including a-z, A-Z, and 0-9.
|
||
> \W Matches any Unicode non-word character.
|
||
> \Z Matches at the end of the string.
|
||
|
||
\a Matches the ASCII Bell ().
|
||
\f Matches the ASCII Formfeed ().
|
||
\n Matches the ASCII Linefeed.
|
||
\r Matches the ASCII Carriage Return (
|
||
).
|
||
\t Matches the ASCII Horizontal Tab.
|
||
\v Matches the ASCII Vertical Tab ().
|