Метод end
Метод end класса Match возвращает индекс конца совпадения в исходной строке. Возвращаемое значение имеет тип usize и указывает на позицию сразу после последнего символа совпадения. Метод не принимает параметров.
Синтаксис
match.end()
Пример
Давайте найдём совпадение шаблона "[a-z]+" в строке "abcde 12345" и получим индекс конца совпадения:
use regex::Regex;
fn main()
{
let re = Regex::new(r"[a-z]+").unwrap();
let text = "abcde 12345";
if let Some(m) = re.find(text) {
println!("{}", m.end());
}
}
Результат выполнения кода:
5
Пример
Давайте получим индекс конца совпадения для второго вхождения, используя итератор find_iter:
use regex::Regex;
fn main()
{
let re = Regex::new(r"[a-z]+").unwrap();
let text = "abcde 12345 xyz";
for m in re.find_iter(text) {
println!("{}", m.end());
}
}
Результат выполнения кода:
5
13
Пример
Давайте извлечём подстроку от начала до конца совпадения, используя методы start и end:
use regex::Regex;
fn main()
{
let re = Regex::new(r"\d+").unwrap();
let text = "abcde 12345";
if let Some(m) = re.find(text) {
let matched = &text[m.start()..m.end()];
println!("{}", matched);
}
}
Результат выполнения кода:
"12345"