Метод name класса Captures
Метод name класса Captures возвращает имя группы захвата по её числовому индексу. Параметром метод принимает индекс группы захвата в виде числа usize. Если группа с таким индексом не имеет имени, метод вернёт None. Метод полезен, когда нужно программно определить, каким именем обладает та или иная группа в регулярном выражении.
Синтаксис
captures.name(index)
Пример
Давайте получим имя группы захвата с индексом 1 из регулярного выражения с именованными группами:
use regex::Regex;
fn main()
{
let re = Regex::new(r"(?P<first>\w+) (?P<second>\w+)").unwrap();
let text = "hello world";
let caps = re.captures(text).unwrap();
let name = caps.name(1);
println!("{:?}", name);
}
Результат выполнения кода:
"first"
Пример
Давайте получим имя группы захвата с индексом 2:
use regex::Regex;
fn main()
{
let re = Regex::new(r"(?P<first>\w+) (?P<second>\w+)").unwrap();
let text = "hello world";
let caps = re.captures(text).unwrap();
let name = caps.name(2);
println!("{:?}", name);
}
Результат выполнения кода:
"second"
Пример
Давайте попробуем получить имя группы захвата с индексом 0. Нулевая группа всегда соответствует всему совпадению и не имеет имени:
use regex::Regex;
fn main()
{
let re = Regex::new(r"(?P<first>\w+) (?P<second>\w+)").unwrap();
let text = "hello world";
let caps = re.captures(text).unwrap();
let name = caps.name(0);
println!("{:?}", name);
}
Результат выполнения кода:
None
Смотрите также
-
класс
Captures,
который хранит результаты захвата групп регулярного выражения -
метод
get,
который возвращает совпадение группы захвата по индексу -
метод
index,
который возвращает совпадение группы захвата по имени -
метод
capture_names,
который возвращает имена всех групп захвата