Метод 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,
который возвращает позицию последнего вхождения подстроки