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

Метод rmatches

Метод rmatches создает итератор по всем непересекающимся совпадениям с заданным шаблоном в строке. В отличие от метода matches, который ищет совпадения слева направо, данный метод просматривает строку в обратном порядке - с конца к началу. Параметром метод принимает шаблон, который нужно найти. Шаблоном может быть строка, символ или замыкание, определяющее условие совпадения.

Синтаксис

str.rmatches(pat)

Пример

Давайте найдем все вхождения подстроки "ab" в строке "ababab", двигаясь с конца:

fn main() { let res: Vec<&str> = "ababab".rmatches("ab").collect(); println!("{:?}", res); }

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

["ab", "ab", "ab"]

Пример

Давайте сравним порядок обхода для методов matches и rmatches на строке "1234512345" с шаблоном "123":

fn main() { let forward: Vec<&str> = "1234512345".matches("123").collect(); let reverse: Vec<&str> = "1234512345".rmatches("123").collect(); println!("{:?}", forward); println!("{:?}", reverse); }

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

["123", "123"] ["123", "123"]

Пример

Давайте используем замыкание в качестве шаблона, чтобы найти цифры в строке "1a2b3c", начиная с конца:

fn main() { let res: Vec<&str> = "1a2b3c".rmatches(char::is_numeric).collect(); println!("{:?}", res); }

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

["3", "2", "1"]

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

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