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 of Literal
chars: Vec<char> | The characters. |
casei: bool | Whether to match case insensitively. |
LiteralBytesA sequence of one or more literal bytes to be matched.
Fields of LiteralBytes
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 of Group
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 of Repeat
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]
impl Exprpub fn parse(s: &str) -> Result<Expr>[src]
pub 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.
pub fn prefixes(&self) -> Literals[src]
pub fn prefixes(&self) -> LiteralsReturns a set of literal prefixes extracted from this expression.
pub fn suffixes(&self) -> Literals[src]
pub fn suffixes(&self) -> LiteralsReturns a set of literal suffixes extracted from this expression.
pub fn is_anchored_start(&self) -> bool[src]
pub fn is_anchored_start(&self) -> boolReturns true if and only if the expression is required to match from the beginning of text.
pub fn has_anchored_start(&self) -> bool[src]
pub fn has_anchored_start(&self) -> boolReturns true if and only if the expression has at least one matchable sub-expression that must match the beginning of text.
pub fn is_anchored_end(&self) -> bool[src]
pub fn is_anchored_end(&self) -> boolReturns true if and only if the expression is required to match at the end of the text.
pub fn has_anchored_end(&self) -> bool[src]
pub fn has_anchored_end(&self) -> boolReturns true if and only if the expression has at least one matchable sub-expression that must match the beginning of text.
pub fn has_bytes(&self) -> bool[src]
pub fn has_bytes(&self) -> boolReturns true if and only if the expression contains sub-expressions that can match arbitrary bytes.
Trait Implementations
impl Clone for Expr[src]
impl Clone for Exprfn clone(&self) -> Expr[src]
fn clone(&self) -> ExprReturns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0[src]
fn clone_from(&mut self, source: &Self)Performs copy-assignment from source. Read more
impl Debug for Expr[src]
impl Debug for Exprfn fmt(&self, __arg_0: &mut Formatter) -> Result[src]
fn fmt(&self, __arg_0: &mut Formatter) -> ResultFormats the value using the given formatter. Read more
impl PartialEq for Expr[src]
impl PartialEq for Exprfn eq(&self, __arg_0: &Expr) -> bool[src]
fn eq(&self, __arg_0: &Expr) -> boolThis method tests for self and other values to be equal, and is used by ==. Read more
fn ne(&self, __arg_0: &Expr) -> bool[src]
fn ne(&self, __arg_0: &Expr) -> boolThis method tests for !=.
impl Eq for Expr[src]
impl Eq for Exprimpl Display for Expr[src]
impl Display for ExprThis implementation of Display will write a regular expression from the
syntax tree. It does not write the original string parsed.