Regex
Raw string
Special Characters
.
^
, $
{m}
{m, n}
,{m, n}?
*
, *?
: {0, INF}
+
, +?
: {1, INF}
?
, ??
: {0, 1}
\
[]
, [^]
: character set, auto-escape special chars.
|
()
: group, use \number
to catch (start from 1)
(?#...)
: comment
(?=...)
: lookahead assertion
(?!...)
: negative lookahead assertion
(?<=...)
: lookbehind assertion
(?<!...)
: negative lookbehind assertion
\s
: [ \t\n\r\f\v]
\S
: [ ^ \t\n\r\f\v]
API
# search, anywhere
re.search(pattern, string) -> Match-Obj/None
# match, search from start
re.match(pattern, string) -> Match-Obj/None
# fullmatch, search from start to end (full)
re.fullmatch(pattern, string) -> Match-Obj/None
# split
re.split(pattern, string, maxsplit=0) -> list
# findall, finditer
re.findall(pattern, string) -> tuple
# sub
re.sub(pattern, repl, string, count=0) -> string
# escape
re.escape(string) -> string
# compile -> Pattern Object
prog = re.compile(pattern)
res = prog.match(string)
# Match Object
m.groups()
m.group(i)
m.pos
m.endpos
Examples
## extract content inside parenthesis
re.findall('\((.*?)\)', 'a(b), c (de), f(g(h))')
#['b', 'de', 'g(h']
## split by any space
re.split('\s*', 'a b c\t d')
#['a', 'b', 'c', 'd']