pub struct Match { /* private fields */ }Expand description
A representation of a match reported by a regex engine.
A match has two essential pieces of information: the PatternID that
matches, and the Span of the match in a haystack.
The pattern is identified by an ID, which corresponds to its position
(starting from 0) relative to other patterns used to construct the
corresponding regex engine. If only a single pattern is provided, then all
matches are guaranteed to have a pattern ID of 0.
Every match reported by a regex engine guarantees that its span has its start offset as less than or equal to its end offset.
Implementations§
Source§impl Match
impl Match
Sourcepub fn new<S: Into<Span>>(pattern: PatternID, span: S) -> Match
pub fn new<S: Into<Span>>(pattern: PatternID, span: S) -> Match
Create a new match from a pattern ID and a span.
This constructor is generic over how a span is provided. While
a Span may be given directly, one may also provide a
std::ops::Range<usize>.
§Panics
This panics if end < start.
§Example
This shows how to create a match for the first pattern in a regex object using convenient range syntax.
use regex_automata::{Match, PatternID};
let m = Match::new(PatternID::ZERO, 5..10);
assert_eq!(0, m.pattern().as_usize());
assert_eq!(5, m.start());
assert_eq!(10, m.end());Sourcepub fn must<S: Into<Span>>(pattern: usize, span: S) -> Match
pub fn must<S: Into<Span>>(pattern: usize, span: S) -> Match
Create a new match from a pattern ID and a byte offset span.
This constructor is generic over how a span is provided. While
a Span may be given directly, one may also provide a
std::ops::Range<usize>.
This is like Match::new, but accepts a usize instead of a
PatternID. This panics if the given usize is not representable
as a PatternID.
§Panics
This panics if end < start or if pattern > PatternID::MAX.
§Example
This shows how to create a match for the third pattern in a regex object using convenient range syntax.
use regex_automata::Match;
let m = Match::must(3, 5..10);
assert_eq!(3, m.pattern().as_usize());
assert_eq!(5, m.start());
assert_eq!(10, m.end());Sourcepub fn pattern(&self) -> PatternID
pub fn pattern(&self) -> PatternID
Returns the ID of the pattern that matched.
The ID of a pattern is derived from the position in which it was
originally inserted into the corresponding regex engine. The first
pattern has identifier 0, and each subsequent pattern is 1, 2 and
so on.
Sourcepub fn start(&self) -> usize
pub fn start(&self) -> usize
The starting position of the match.
This is a convenience routine for Match::span().start.
Sourcepub fn end(&self) -> usize
pub fn end(&self) -> usize
The ending position of the match.
This is a convenience routine for Match::span().end.
Sourcepub fn range(&self) -> Range<usize>
pub fn range(&self) -> Range<usize>
Returns the match span as a range.
This is a convenience routine for Match::span().range().