str.rindex()

Метод rindex() возвращает наибольший индекс, по которому подстрока sub встречается в строке (то есть последнее вхождение). В отличие от str.find(), при отсутствии подстроки метод не возвращает -1, а возбуждает исключение ValueError.

Сигнатура

str.rindex(sub[, start[, end]])

Параметры

  • sub — искомая подстрока.

  • start — индекс, с которого начинается поиск (необязательный).

  • end — индекс, на котором поиск завершается (необязательный).

Возвращаемое значение

Целое число — индекс последнего вхождения sub. При отсутствии — исключение ValueError.

Примеры использования

Пример 1. Последнее вхождение.

print("arduino-uno-r3".rindex("-"))
11

Пример 2. Получение имени файла из пути.

path = "/home/alashed/projects/main.py"
last_slash = path.rindex("/")
print(path[last_slash + 1:])
main.py

Пример 3. Исключение при отсутствии.

try:
    "Arduino".rindex("ESP32")
except ValueError as e:
    print("Не найдено:", e)
Не найдено: substring not found

Пример 4. Поиск в диапазоне.

text = "abcabcabc"
print(text.rindex("a", 0, 5))
3

Пример 5. Получение расширения файла.

filename = "robot_phobo.firmware.hex"
dot = filename.rindex(".")
print("Расширение:", filename[dot + 1:])
Расширение: hex

См. также

  • str.find() — поиск без исключения (возвращает -1)

  • str.index() — поиск первого вхождения с исключением

  • str.rpartition() — разделение по последнему вхождению

Примечание

Лицензия и источники

Техническое описание метода адаптировано из официальной документации Python (https://docs.python.org), доступной под Python Software Foundation License Version 2. Перевод на русский, примеры использования и пояснения — © AlashEd Wiki.