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

Тип RegexSet

Тип RegexSet представляет собой коллекцию регулярных выражений, объединённых в один набор. В отличие от обычного Regex, который работает с одним шаблоном, RegexSet позволяет проверить входную строку сразу против нескольких шаблонов за один проход. Параметром метод new принимает итератор строк, каждая из которых является регулярным выражением.

Основное преимущество RegexSet в том, что он позволяет узнать, какие именно шаблоны совпали со строкой, без необходимости последовательно применять каждый Regex по отдельности. Это особенно полезно, когда нужно проверить строку на соответствие большому количеству шаблонов.

Синтаксис

use regex::RegexSet; let set = RegexSet::new(&[ r"pattern1", r"pattern2", ]).unwrap();

Пример

Давайте создадим набор из трёх регулярных выражений и проверим строку "abcde" на соответствие этим шаблонам:

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

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

true

Пример

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

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

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

[0, 2]

Числа 0 и 2 - это индексы шаблонов "abc" и "de", которые совпали со строкой. Шаблон "xyz" с индексом 1 не совпал.

Пример

Давайте проверим строку "12345" на соответствие набору шаблонов:

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

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

false

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

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