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

Метод captures

Метод captures выполняет поиск по регулярному выражению в переданной строке и возвращает первую найденную группу захвата. Он возвращает значение типа Option<Captures>: Some, если совпадение найдено, и None в противном случае. Параметром метод принимает строку, в которой нужно выполнить поиск.

Основное отличие от метода find заключается в том, что captures позволяет получить не только само совпадение, но и все группы захвата, определённые в регулярном выражении с помощью круглых скобок.

Синтаксис

regex.captures(text)

Пример

Давайте найдём первое совпадение по регулярному выражению r"(\d+)-(\d+)" в строке "123-456" и извлечём группы захвата:

use regex::Regex; fn main() { let re = Regex::new(r"(\d+)-(\d+)").unwrap(); let text = "123-456"; match re.captures(text) { Some(caps) => { println!("Full match: {}", &caps[0]); println!("First group: {}", &caps[1]); println!("Second group: {}", &caps[2]); } None => println!("No match found"), } }

Результат выполнения кода:

Full match: 123-456 First group: 123 Second group: 456

Пример

Давайте попробуем найти совпадение по регулярному выражению r"(\d+)-(\d+)" в строке "abcde", которая не содержит цифр:

use regex::Regex; fn main() { let re = Regex::new(r"(\d+)-(\d+)").unwrap(); let text = "abcde"; match re.captures(text) { Some(caps) => println!("Full match: {}", &caps[0]), None => println!("No match found"), } }

Результат выполнения кода:

No match found

Пример

Давайте извлечём именованные группы захвата из строки "John Smith" с помощью регулярного выражения r"(?P<first>\w+)\s(?P<last>\w+)":

use regex::Regex; fn main() { let re = Regex::new(r"(?P<first>\w+)\s(?P<last>\w+)").unwrap(); let text = "John Smith"; if let Some(caps) = re.captures(text) { println!("First name: {}", caps.name("first").unwrap().as_str()); println!("Last name: {}", caps.name("last").unwrap().as_str()); } }

Результат выполнения кода:

First name: John Last name: Smith

Смотрите также

  • метод captures_iter,
    который возвращает итератор по всем группам захвата
  • метод find,
    который возвращает первое совпадение без групп захвата
  • класс Captures,
    который хранит результаты захвата групп
  • метод is_match,
    который проверяет наличие совпадения в строке
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить