Тип Captures
Тип Captures представляет собой результат
захвата групп регулярного выражения. Он
создаётся методами captures и
captures_iter и хранит информацию обо
всех группах, определённых в шаблоне. Через
этот тип можно получить найденные подстроки
по числовому индексу или по имени группы.
Значение Captures также позволяет
узнать общее количество групп в шаблоне.
Синтаксис
Captures<'t>
Пример
Давайте получим захваченные группы из строки
"abcde" с помощью регулярного выражения
"(a)(b)(c)":
use regex::Regex;
fn main()
{
let re = Regex::new(r"(a)(b)(c)").unwrap();
let caps = re.captures("abcde").unwrap();
println!("{}", &caps[0]);
println!("{}", &caps[1]);
println!("{}", &caps[2]);
println!("{}", &caps[3]);
}
Результат выполнения кода:
"abc"
"a"
"b"
"c"
Пример
Давайте получим захваченную группу по её
имени с помощью метода name:
use regex::Regex;
fn main()
{
let re = Regex::new(r"(?P<first>a)(?P<second>b)").unwrap();
let caps = re.captures("abcde").unwrap();
let first = caps.name("first").unwrap();
let second = caps.name("second").unwrap();
println!("{}", first.as_str());
println!("{}", second.as_str());
}
Результат выполнения кода:
"a"
"b"
Пример
Давайте проверим количество групп в шаблоне и получим захваченную группу по индексу:
use regex::Regex;
fn main()
{
let re = Regex::new(r"(\d+)-(\d+)").unwrap();
let caps = re.captures("12345-67890").unwrap();
println!("{}", caps.len());
println!("{}", caps.get(1).unwrap().as_str());
println!("{}", caps.get(2).unwrap().as_str());
}
Результат выполнения кода:
3
"12345"
"67890"
Смотрите также
-
метод
captures,
который возвращает первую коллекцию захваченных групп -
метод
captures_iter,
который возвращает итератор по всем коллекциям захватов -
метод
get,
который возвращает захваченную группу по индексу -
метод
name,
который возвращает захваченную группу по имени