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

Метод rmatch_indices

Метод rmatch_indices возвращает итератор, который перебирает все вхождения подстроки в строке в обратном порядке (справа налево). Каждый элемент итератора - это кортеж из двух значений: позиции начала вхождения и самой найденной подстроки. Параметром метод принимает подстроку или шаблон, который нужно найти.

Синтаксис

str.rmatch_indices(pat)

Пример

Давайте найдём все вхождения подстроки "ab" в строке "ababcab" в обратном порядке:

fn main() { let s = "ababcab"; let res: Vec<_> = s.rmatch_indices("ab").collect(); println!("{:?}", res); }

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

[(5, "ab"), (2, "ab"), (0, "ab")]

Пример

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

fn main() { let s = "1234512345"; for (index, mat) in s.rmatch_indices("123") { println!("{}: {}", index, mat); } }

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

5: 123 0: 123

Пример

Давайте убедимся, что при отсутствии совпадений итератор не возвращает ни одного элемента:

fn main() { let s = "abcde"; let res: Vec<_> = s.rmatch_indices("xyz").collect(); println!("{:?}", res); }

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

[]

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

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