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

Метод new класса RegexSet

Метод new класса RegexSet создаёт набор регулярных выражений, которые можно проверять одновременно за один проход по строке. Параметром метод принимает итератор шаблонов регулярных выражений. Возвращает результат Result с объектом RegexSet или ошибкой. Если хотя бы один шаблон некорректен, возвращается ошибка.

Синтаксис

RegexSet::new(patterns)

Пример

Давайте создадим набор из двух шаблонов и проверим, какие из них совпадают со строкой "abcde":

use regex::RegexSet; fn main() { let set = RegexSet::new(&[ r"\d+", r"abc", ]).unwrap(); let matches: Vec<usize> = set.matches("abcde").iter().collect(); println!("{:?}", matches); }

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

[1]

Пример

Давайте проверим, совпадает ли хотя бы один шаблон из набора со строкой "12345":

use regex::RegexSet; fn main() { let set = RegexSet::new(&[ r"\d+", r"abc", ]).unwrap(); let res = set.is_match("12345"); println!("{}", res); }

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

true

Пример

Давайте создадим набор с некорректным шаблоном и посмотрим, как обрабатывается ошибка:

use regex::RegexSet; fn main() { let res = RegexSet::new(&[ r"\d+", r"(unclosed", ]); match res { Ok(_) => println!("ok"), Err(e) => println!("error: {}", e), } }

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

error: regex parse error: (unclosed ^ error: unclosed group

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

  • класс RegexSet,
    который представляет набор регулярных выражений
  • метод is_match,
    который проверяет совпадение хотя бы с одним шаблоном
  • метод matches,
    который возвращает индексы совпавших шаблонов
  • метод new класса Regex,
    который создаёт одиночное регулярное выражение
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить