Enum fancy_regex::Expr [−][src]
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 .
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
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}
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.
Fields of Delegate
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
impl Expr[src]
pub fn parse_tree(re: &str) -> Result<ExprTree>[src]
Parse the regex and return an expression (AST) and a bit set with the indexes of groups that are referenced by backrefs.
pub fn to_str(&self, buf: &mut String, precedence: u8)[src]
Convert expression to a regex string in the regex crate's syntax.
Panics
Panics for expressions that are hard, i.e. can not be handled by the regex crate.
Trait Implementations
impl Debug for Expr[src]
impl Eq for Expr[src]
impl PartialEq<Expr> for Expr[src]
impl StructuralEq for Expr[src]
impl StructuralPartialEq for Expr[src]
Auto Trait Implementations
impl RefUnwindSafe for Expr[src]
impl Send for Expr[src]
impl Sync for Expr[src]
impl Unpin for Expr[src]
impl UnwindSafe for Expr[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,