РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
974 of 1245 menu

Тип 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,
    который возвращает захваченную группу по имени
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить