\
escape special characters.
matches any character^
matches beginning of string$
matches end of string[5b-d]
matches any chars '5', 'b', 'c' or 'd'[^a-c6]
matches any char except 'a', 'b', 'c' or '6'R|S
matches either regex R or regex S()
creates a capture group and indicates precedence*
0 or more (append ? for non-greedy)+
1 or more (append ? for non-greedy)?
0 or 1 (append ? for non-greedy){m}
exactly mm occurrences{m, n}
from m to n. m defaults to 0, n to infinity{m, n}?
from m to n, as few as possible\A
start of string\b
matches empty string at word boundary
(between \w
and \W
)
\B
matches empty string not at word boundary\d
digit\D
non-digit\s
whitespace: [ \t\n\r\f\v]
\S
non-whitespace\w
alphanumeric: [0-9a-zA-Z_]
\W
non-alphanumeric\Z
end of string\g<id>
matches a previously defined group(?iLmsux)
Matches empty string, sets re.X flags(?:...)
Non-capturing version of regular parentheses(?P<name>...)
Creates a named capturing group.(?P=name)
Matches whatever matched previously named group(?#...)
A comment; ignored.(?=...)
Lookahead assertion: Matches without consuming(?!...)
Negative lookahead assertion(?<=...)
Lookbehind assertion: Matches if preceded(?<!...)
Negative lookbehind assertion(?(id)yes|no)
Match 'yes' if group 'id' matched, else 'no'For a complete guide on regular expressions and the python re
module, please
visit the
official documentation.