Enum regex_syntax::Expr
[−]
[src]
pub enum Expr {
Empty,
Literal {
chars: Vec<char>,
casei: bool,
},
LiteralBytes {
bytes: Vec<u8>,
casei: bool,
},
AnyChar,
AnyCharNoNL,
AnyByte,
AnyByteNoNL,
Class(CharClass),
ClassBytes(ByteClass),
StartLine,
EndLine,
StartText,
EndText,
WordBoundary,
NotWordBoundary,
WordBoundaryAscii,
NotWordBoundaryAscii,
Group {
e: Box<Expr>,
i: Option<usize>,
name: Option<String>,
},
Repeat {
e: Box<Expr>,
r: Repeater,
greedy: bool,
},
Concat(Vec<Expr>),
Alternate(Vec<Expr>),
}A regular expression abstract syntax tree.
An Expr represents the abstract syntax of a regular expression.
Variants
EmptyAn empty regex (which never matches any text).
LiteralA sequence of one or more literal characters to be matched.
Fields
chars: Vec<char> | The characters. |
casei: bool | Whether to match case insensitively. |
LiteralBytesA sequence of one or more literal bytes to be matched.
Fields
bytes: Vec<u8> | The bytes. |
casei: bool | Whether to match case insensitively. The interpretation of "case insensitive" in this context is
ambiguous since |
AnyCharMatch any character.
AnyCharNoNLMatch any character, excluding new line (0xA).
AnyByteMatch any byte.
AnyByteNoNLMatch any byte, excluding new line (0xA).
Class(CharClass)A character class.
ClassBytes(ByteClass)A character class with byte ranges only.
StartLineMatch the start of a line or beginning of input.
EndLineMatch the end of a line or end of input.
StartTextMatch the beginning of input.
EndTextMatch the end of input.
WordBoundaryMatch a word boundary (word character on one side and a non-word character on the other).
NotWordBoundaryMatch a position that is not a word boundary (word or non-word characters on both sides).
WordBoundaryAsciiMatch an ASCII word boundary.
NotWordBoundaryAsciiMatch a position that is not an ASCII word boundary.
GroupA group, possibly non-capturing.
Fields
e: Box<Expr> | The expression inside the group. |
i: Option<usize> | The capture index (starting at |
name: Option<String> | The capture name, only for capturing named groups. |
RepeatA repeat operator (?, *, + or {m,n}).
Fields
e: Box<Expr> | The expression to be repeated. Limited to literals, |
r: Repeater | The type of repeat operator used. |
greedy: bool | Whether the repeat is greedy (match the most) or not (match the least). |
Concat(Vec<Expr>)A concatenation of expressions. Must be matched one after the other.
N.B. A concat expression can only appear at the top-level or immediately inside a group expression.
Alternate(Vec<Expr>)An alternation of expressions. Only one must match.
N.B. An alternate expression can only appear at the top-level or immediately inside a group expression.
Methods
impl Expr[src]
fn parse(s: &str) -> Result<Expr>
Parses a string in a regular expression syntax tree.
This is a convenience method for parsing an expression using the
default configuration. To tweak parsing options (such as which flags
are enabled by default), use the ExprBuilder type.
fn prefixes(&self) -> Literals
Returns a set of literal prefixes extracted from this expression.
fn suffixes(&self) -> Literals
Returns a set of literal suffixes extracted from this expression.
fn is_anchored_start(&self) -> bool
Returns true if and only if the expression is required to match from the beginning of text.
fn has_anchored_start(&self) -> bool
Returns true if and only if the expression has at least one matchable sub-expression that must match the beginning of text.
fn is_anchored_end(&self) -> bool
Returns true if and only if the expression is required to match at the end of the text.
fn has_anchored_end(&self) -> bool
Returns true if and only if the expression has at least one matchable sub-expression that must match the beginning of text.
fn has_bytes(&self) -> bool
Returns true if and only if the expression contains sub-expressions that can match arbitrary bytes.
Trait Implementations
impl Clone for Expr[src]
fn clone(&self) -> Expr
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0
Performs copy-assignment from source. Read more
impl Debug for Expr[src]
impl PartialEq for Expr[src]
fn eq(&self, __arg_0: &Expr) -> bool
This method tests for self and other values to be equal, and is used by ==. Read more
fn ne(&self, __arg_0: &Expr) -> bool
This method tests for !=.
impl Eq for Expr[src]
impl Display for Expr[src]
This implementation of Display will write a regular expression from the
syntax tree. It does not write the original string parsed.