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

Метод unicode

Метод unicode класса RegexBuilder управляет поддержкой Unicode при построении регулярного выражения. Параметром метод принимает булево значение: true включает поддержку Unicode, а false - отключает её. По умолчанию поддержка Unicode включена. Метод возвращает &mut RegexBuilder, что позволяет вызывать его в цепочке с другими методами построителя.

Когда поддержка Unicode включена, такие конструкции, как \w, \d и \s, соответствуют не только ASCII-символам, но и символам из других языков и алфавитов. Отключение Unicode может ускорить работу регулярного выражения, но при этом оно перестанет корректно обрабатывать не-ASCII символы.

Синтаксис

RegexBuilder::new(pattern).unicode(flag).build()

Пример

Давайте построим регулярное выражение с включённой поддержкой Unicode и проверим, соответствует ли строка "abcde" шаблону \w+:

use regex::RegexBuilder; fn main() { let re = RegexBuilder::new(r"\w+") .unicode(true) .build() .unwrap(); let res = re.is_match("abcde"); println!("{}", res); }

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

true

Пример

Давайте отключим поддержку Unicode и проверим, соответствует ли строка "abcde" шаблону \w+:

use regex::RegexBuilder; fn main() { let re = RegexBuilder::new(r"\w+") .unicode(false) .build() .unwrap(); let res = re.is_match("abcde"); println!("{}", res); }

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

true

Пример

Давайте проверим, как поддержка Unicode влияет на совпадение с не-ASCII символом. Строка "abcde" не содержит таких символов, поэтому для наглядности проверим кириллическую строку с отключённым Unicode:

use regex::RegexBuilder; fn main() { let re = RegexBuilder::new(r"^\w+$") .unicode(false) .build() .unwrap(); let res = re.is_match("абвгд"); println!("{}", res); }

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

false

При включённой поддержке Unicode аналогичное выражение успешно совпало бы с кириллической строкой.

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

  • класс RegexBuilder,
    который используется для настройки и построения регулярных выражений
  • метод case_insensitive,
    который включает или отключает регистронезависимый поиск
  • метод dot_matches_new_line,
    который управляет соответствием точки символу перевода строки
  • метод build,
    который создаёт регулярное выражение на основе настроек построителя
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить