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

Метод match_indices

Метод match_indices ищет все вхождения подстроки в строке и возвращает итератор, каждый элемент которого представляет собой кортеж из индекса и найденной подстроки. Параметром метод принимает подстроку или символ, который нужно найти.

В отличие от метода matches, который возвращает только найденные подстроки, match_indices дополнительно сообщает позицию каждого вхождения. Индексы указывают на байтовую позицию начала вхождения в исходной строке.

Синтаксис

str.match_indices(pat)

Пример

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

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

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

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

Пример

Давайте переберём все вхождения подстроки "cd" в строке "abcdcd" и выведем индекс и найденную подстроку по отдельности:

fn main() { for (index, matched) in "abcdcd".match_indices("cd") { println!("index: {}, match: {}", index, matched); } }

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

index: 2, match: "cd" index: 4, match: "cd"

Пример

Метод также работает с отдельными символами. Давайте найдём все вхождения символа 'a' в строке "banana":

fn main() { let res: Vec<_> = "banana".match_indices('a').collect(); println!("{:?}", res); }

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

[(1, "a"), (3, "a"), (5, "a")]

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

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