Grep Regex Cheat Sheet
A cheat sheet about regular expressions in Sublime Text.
expression | Description |
---|---|
. | Match any character |
^ | Match line begin |
$ | Match line end |
* | Match previous RE 0 or more times greedily |
*? | Match previous RE 0 or more times non-greedily |
+ | Match previous RE 1 or more times greedily |
+? | Match previous RE 1 or more times non-greedily |
? | Match previous RE 0 or 1 time greedily |
?? | Match previous RE 0 or 1 time non-greedily |
A|B | Match either RE A or B |
{m} | Match previous RE exactly m times |
{m,n} | Match previous RE m to n times greedily |
{m, n}? | Match previous RE m to n times, no-greedily |
expression | Description |
---|---|
[abc] | Match either a , b or c |
[^abc] | Match any character not in this set (i.e., not a , b and c ) |
[a-z] | Match the range from a to z |
[a-f2-8] | Match the range from a to z or the range from 2 to 8 |
[a-z] | Match a , - or z |
[a-] | Match a , - |
[-a] | Match - , a |
[-a] | Match - , a |
[{}*|()[]+^$.?] | Match either one of the chacters in []{}*|()+^$?. |
Grep Regex Cheat Sheet Printable
- Note that you can also use character class inside
[]
, for example,[w]
matches any character inword
character class.
“Multiple character” character class
Quick-Start: Regex Cheat Sheet. Os mavericks update. The tables below are a reference to basic regex. While reading the rest of the site, when in doubt, you can always come back and look here. (It you want a bookmark, here's a direct link to the regex reference tables ). I encourage you to print the tables so you have a cheat sheet on your desk for quick reference. Feel free to email me with any GREP questions you might have. Chances are, the GREP you need has been done before and can be found online or through my resources. Be sure to check out Peter Kahrel’s book, “Grep in InDesign.” If you’re a member of Adobe’s InDesign User Group, you can get it at a discount. You can use regex such as ‘.’ in the search string. Ngrep -d any “domain.com” port 80. Or use regex to search for ‘pass’ or ‘USER’ ngrep -d any “pass USER” port 80. And ignore case with -i to match for ‘user’ as well. Ngrep -d any -i “pass USER” port 80. If you’re logged in via SSH you might want to ignore your. GREP cheat sheet characters — what to seek ring matches ring, springboard, ringtone, etc. Matches almost any character h.o matches hoo, h2o, h/o, etc. Use to search for these special characters. (quiet) matches (quiet)c:windows matches c:windows alternatives — (OR) cat dog match cat or dog order matters if short alternative is part of longer. Many programs use regular expression to find & replace text. However, they tend to come with their own different flavor. You can probably expect most modern software and programming languages to be using some variation of the Perl flavor, 'PCRE'; however command-line tools (grep, less.) often use the POSIX flavor (sometimes with an extended.
An expression of the form [[:name:]]
matches the named character class name
.
Grep Regex Cheat Sheet Pdf
class name | Description |
---|---|
alnum | Any alpha-numeric character |
alpha | Any alphabetic character. |
digit | Any decimal digit. |
xdigit | Any hexadecimal digit character. |
lower | Any lower case character. |
upper | Any upper case character. |
cntrl | Any control character1. |
print | Any printable character. |
punct | Any punctuation character. 2 |
space | Any whitespace character. 3 |
word | Any word character (alphanumeric characters plus the underscore). |
Note: To use upper
and lower
, you have to enable case sensitve search.
“Single character” character class
class name | Description |
---|---|
d | Equal to [[:digit:]] |
l | Equal to [[:lower:]] |
u | Equal to [[:upper:]] |
s | Equal to [[:space:]] |
w | Equal to [[:word:]] |
D | Equal to [^[:digit:]] |
L | Equal to [^[:lower:]] |
U | Equal to [^[:upper:]] |
W | Equal to [^[:word:]] |
Defining capture groups
expression | Description |
---|---|
(?<NAME>pattern) | Define a regex group named NAME which you can later refer to with g{NAME} |
(?=pattern) | Positive lookahead, consumes zero characters, the preceding RE only matches if this matches |
(?!pattern) | Negative lookahead, consumes zero characters, the preceding RE only matches if this does not match |
(?<=pattern) | Positive lookbehind, consumes zero characters, the following RE will only match if preceded with this fixed length RE. |
(?<!pattern) | Negative lookbehind, consumes zero characters, the following RE will only match if not preceded with this fixed length RE. |
Refering to matching groups (capture groups)
expression | Description |
---|---|
1 | Refer to first regex group |
g{1} | Refer to first regex group |
g{12} | Refer to 12th regex group |
g{-1} | Refer to last regex group |
g{-2} | Refer to last but one regex group |
- The regex groups are indexed by the order of their opening braces.
- Note the
g{NUM}
form allows for matching regex group index larger than 9, for example,g{12}
.
Escapes
class name | Description |
---|---|
xdd | A hexadecimal escape sequence - matches the single character whose code point is 0xdd . |
x{dddd} | A hexadecimal escape sequence - matches the single character whose code point is 0xdddd . |
Word boundaries
The following escape sequences match the boundaries of words:
class name | Description |
---|---|
< | Matches the start of a word. |
> | Matches the end of a word. |
b | Matches a word boundary (the start or end of a word). |
B | Matches only when not at a word boundary. |
The title image is taken from here.
Control character explanation: https://en.wikipedia.org/wiki/Control_character↩︎
There are 14 punctuation marks in English: https://grammar.yourdictionary.com/punctuation/what/fourteen-punctuation-marks.html↩︎
For whitespace character, see https://en.wikipedia.org/wiki/Whitespace_character↩︎