В Python есть несколько способов поиска подстроки в строке. Например, можно использовать методы find() и rfind(), которые возвращают индекс первого вхождения подстроки и индекс последнего вхождения подстроки соответственно.
Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
Пример
s = "Привет, мир! Мир - прекрасен"
print(s.find('мир')) # 8
print(s.rfind('мир')) # 13
Однако, эти методы не предоставляют информации обо всех вхождениях подстроки в строку. Например, если необходимо найти все вхождения слова «мир» в предложении «Привет, мир! Мир — прекрасен», то find() и rfind() не смогут с этим справиться.
В этом случае можно использовать регулярные выражения или цикл для прохождения по строке и поиска всех вхождений подстроки.
Использование регулярных выражений
Модуль re в Python предоставляет функцию finditer(), которая возвращает итератор, содержащий все вхождения подстроки в строке.
Пример
import re
s = "Привет, мир! Мир - прекрасен"
matches = re.finditer('мир', s)
indices = [match.start() for match in matches]
print(indices) # [8, 13]
Использование цикла
Можно использовать цикл и метод find() для поиска всех вхождений подстроки в строке.
Пример
s = "Привет, мир! Мир - прекрасен"
substring = 'мир'
indices = []
index = -1 # начинаем поиск с начала строки
while True:
# находим следующее вхождение подстроки
index = s.find(substring, index + 1)
# если вхождение не найдено, выходим из цикла
if index == -1:
break
# добавляем индекс в список
indices.append(index)
print(indices) # [8, 13]
Изучайте Python на онлайн-курсе от Skypro «Python-разработчик». Программа рассчитана на новичков без опыта программирования и технического образования. Курс проходит в формате записанных коротких видеолекций. Будет много проверочных заданий и мастер-классов. В конце каждой недели — живая встреча с экспертами в разработке для ответов на вопросы и разбора домашек.
Таким образом, с помощью регулярных выражений или цикла можно найти все вхождения подстроки в строке.
Перейти в телеграм, чтобы получить результаты теста





Забрать
Добавить комментарий