Struct regex::CaptureLocations
source · [−]pub struct CaptureLocations(_);
Expand description
CaptureLocations is a low level representation of the raw offsets of each submatch.
You can think of this as a lower level
Captures
, where this type does not support
named capturing groups directly and it does not borrow the text that these
offsets were matched on.
Primarily, this type is useful when using the lower level Regex
APIs
such as read_captures
, which permits amortizing the allocation in which
capture match locations are stored.
In order to build a value of this type, you’ll need to call the
capture_locations
method on the Regex
being used to execute the search.
The value returned can then be reused in subsequent searches.
Example
This example shows how to create and use CaptureLocations
in a search.
use regex::Regex;
let re = Regex::new(r"(?<first>\w+)\s+(?<last>\w+)").unwrap();
let mut locs = re.capture_locations();
let m = re.captures_read(&mut locs, "Bruce Springsteen").unwrap();
assert_eq!(0..17, m.range());
assert_eq!(Some((0, 17)), locs.get(0));
assert_eq!(Some((0, 5)), locs.get(1));
assert_eq!(Some((6, 17)), locs.get(2));
// Asking for an invalid capture group always returns None.
assert_eq!(None, locs.get(3));
assert_eq!(None, locs.get(34973498648));
assert_eq!(None, locs.get(9944060567225171988));
Implementations
sourceimpl CaptureLocations
impl CaptureLocations
sourcepub fn get(&self, i: usize) -> Option<(usize, usize)>
pub fn get(&self, i: usize) -> Option<(usize, usize)>
Returns the start and end positions of the Nth capture group. Returns
None
if i
is not a valid capture group or if the capture group did
not match anything. The positions returned are always byte indices
with respect to the original string matched.
Trait Implementations
sourceimpl Clone for CaptureLocations
impl Clone for CaptureLocations
sourcefn clone(&self) -> CaptureLocations
fn clone(&self) -> CaptureLocations
1.0.0const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source
. Read more