Enum fancy_regex::Expr [−][src]
pub enum Expr {
Show variants
Empty,
Any {
newline: bool,
},
StartText,
EndText,
StartLine,
EndLine,
Literal {
val: String,
casei: bool,
},
Concat(Vec<Expr>),
Alt(Vec<Expr>),
Group(Box<Expr>),
LookAround(Box<Expr>, LookAround),
Repeat {
child: Box<Expr>,
lo: usize,
hi: usize,
greedy: bool,
},
Delegate {
inner: String,
size: usize,
casei: bool,
},
Backref(usize),
NamedBackref(String),
AtomicGroup(Box<Expr>),
}Expand description
Regular expression AST. This is public for now but may change.
Variants
An empty expression, e.g. the last branch in (a|b|)
Any character, regex .
Show fields
Fields of Any
newline: boolWhether it also matches newlines or not
Start of input text
End of input text
Start of a line
End of a line
The string as a literal, e.g. a
Show fields
Concatenation of multiple expressions, must match in order, e.g. a. is a concatenation of
the literal a and . for any character
Alternative of multiple expressions, one of them must match, e.g. a|b is an alternative
where either the literal a or b must match
Capturing group of expression, e.g. (a.) matches a and any character and “captures”
(remembers) the match
LookAround(Box<Expr>, LookAround)Look-around (e.g. positive/negative look-ahead or look-behind) with an expression, e.g.
(?=a) means the next character must be a (but the match is not consumed)
Repeat of an expression, e.g. a* or a+ or a{1,3}
Show fields
Fields of Repeat
child: Box<Expr>The expression that is being repeated
lo: usizeThe minimum number of repetitions
hi: usizeThe maximum number of repetitions (or usize::MAX)
greedy: boolGreedy means as much as possible is matched, e.g. .*b would match all of abab.
Non-greedy means as little as possible, e.g. .*?b would match only ab in abab.
Delegate a regex to the regex crate. This is used as a simplification so that we don’t have to represent all the expressions in the AST, e.g. character classes.
Show fields
Backref(usize)Back reference to a capture group, e.g. \1 in (abc|def)\1 references the captured group
and the whole regex matches either abcabc or defdef.
NamedBackref(String)Back reference to a named capture group.
Atomic non-capturing group, e.g. (?>ab|a) in text that contains ab will match ab and
never backtrack and try a, even if matching fails after the atomic group.
Implementations
Parse the regex and return an expression (AST) and a bit set with the indexes of groups that are referenced by backrefs.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Exprimpl UnwindSafe for Expr