Reference
.
non-newline char^
start of line$
end of line\b
word boundary\B
non-word boundary\A
start of subject\z
end of subject\d
decimal digit\D
non-decimal digit\s
whitespace\S
non-whitespace\w
word character\W
non-word character(a|z)
a or z[az]
a or z[^az]
not a or z[a-z]
a through z(foo)
capture fooa?
0 or 1 aa*
0 or more aa+
1 or more aa{3}
3 of aa{3,}
3 or more aa{3,5}
3 through 5 a
Modifiers (enable: (?a)
, disable:
(?-a)
)
u
unicodei
case insensitives
dot matches newlinem
multilinex
whitespace ignoredFor more information see the documentation for the regex crate .
Additional escapes
\h
hex digit ([0-9A-Fa-f]
)
\H
not hex digit
([^0-9A-Fa-f]
)
\e
escape control character
\K
keep text out of match\G
anchor to previous matchCapture groups and backreferences
\1
match first capture group\2
match second capture group\{N}
match Nth capture group(?<name> exp)
capture group named name
\k<name>
match capture group
name
Lookaround
(?=exp)
look-head for exp(?!exp)
negative look-head for
exp
(?<=exp)
look-behind for exp
(?<!exp)
negative look-behind for
exp
Atomic groups
(?>exp)
no backtracking in
exp
Conditions
(?(1))
continue if first capture group
matched
(?(<name>))
continue if capture group name matched
(?(1)true|false)
if the first capture group matched then execute the
true
regex expression, else execute
false
(?(condition)true|false)
if the condition matches then execute the
true
regex expression, else execute
false
For more information see the documentation for the fancy-regex crate .