Python: как найти все вхождения подстроки в строку

Чтобы найти все вхождения подстроки в строку в Python, вы можете использовать несколько методов. Вот несколько часто используемых подходов:

  1. Использование метода find()в цикле:

    def find_all_occurrences(string, substring):
       occurrences = []
       index = -1
       while True:
           index = string.find(substring, index + 1)
           if index == -1:
               break
           occurrences.append(index)
       return occurrences
  2. Использование понимания списка с помощью функции enumerate():

    def find_all_occurrences(string, substring):
       return [i for i, _ in enumerate(string) if string.startswith(substring, i)]
  3. Использование регулярных выражений с модулем re:

    import re
    def find_all_occurrences(string, substring):
       occurrences = [match.start() for match in re.finditer(substring, string)]
       return occurrences

Эти методы возвращают список индексов, в которых подстрока встречается внутри строки. Помните, что Python чувствителен к регистру, поэтому сравнение также учитывает регистр.