В 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-разработчик». Программа рассчитана на новичков без опыта программирования и технического образования. Курс проходит в формате записанных коротких видеолекций. Будет много проверочных заданий и мастер-классов. В конце каждой недели — живая встреча с экспертами в разработке для ответов на вопросы и разбора домашек.
Таким образом, с помощью регулярных выражений или цикла можно найти все вхождения подстроки в строке.
Добавить комментарий