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

Класс regex::bytes::Regex

Класс regex::bytes::Regex представляет собой скомпилированное регулярное выражение, предназначенное для поиска совпадений в произвольных байтовых последовательностях. В отличие от regex::Regex, который работает только с валидными UTF-8 строками, данный класс позволяет искать совпадения в срезах типа &[u8], что полезно при обработке бинарных данных, сетевых протоколов или файлов, которые могут не быть корректным UTF-8. Метод new принимает строку с шаблоном регулярного выражения и возвращает результат типа Result с объектом Regex или ошибкой компиляции.

Синтаксис

use regex::bytes::Regex; let re = Regex::new(pattern)?;

Пример

Давайте создадим регулярное выражение для поиска цифр в байтовой строке и проверим его работу:

use regex::bytes::Regex; fn main() { let re = Regex::new(r"\d+").unwrap(); let data = b"abc123def456"; let res = re.find(data); println!("{:?}", res); }

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

Some(Match { text: "123", start: 3, end: 6 })

Пример

Давайте найдём все совпадения цифровых последовательностей в байтовом срезе:

use regex::bytes::Regex; fn main() { let re = Regex::new(r"\d+").unwrap(); let data = b"abc123def456"; let res: Vec<&[u8]> = re.find_iter(data) .map(|m| m.as_bytes()) .collect(); println!("{:?}", res); }

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

[b"123", b"456"]

Пример

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

use regex::bytes::Regex; fn main() { let re = Regex::new(r"abc").unwrap(); let data = b"xxabcxx"; let res = re.is_match(data); println!("{}", res); }

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

true

Пример

Давайте заменим все вхождения цифр на байтовую строку "N":

use regex::bytes::Regex; fn main() { let re = Regex::new(r"\d").unwrap(); let data = b"abc123def456"; let res = re.replace_all(data, &b"N"[..]); println!("{:?}", res); }

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

b"abcNNNdefNNN"

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

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