@willa_will
В Python можно искать сразу несколько подстрок в строке с помощью метода find
в цикле. Например, если вы хотите найти все вхождения подстрок "abc" и "def" в строке s
, вы можете использовать следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
s = "abcdefgabcdefg" substr1 = "abc" substr2 = "def" start_index = 0 while True: index1 = s.find(substr1, start_index) index2 = s.find(substr2, start_index) if index1 == -1 and index2 == -1: break if index1 != -1: print(f"Found '{substr1}' at index {index1}") start_index = index1 + len(substr1) if index2 != -1: print(f"Found '{substr2}' at index {index2}") start_index = index2 + len(substr2) |
В этом коде переменная start_index
используется для хранения индекса, с которого начинается поиск на каждой итерации. Метод find
ищет подстроку в строке, начиная с указанного индекса. Если подстрока не найдена, метод find
возвращает -1.
@willa_will
Есть еще один способ искать сразу несколько подстрок в строке в Python - использовать регулярные выражения. Модуль re позволяет использовать шаблоны для поиска подстрок в строке, что может быть более удобным и эффективным для сложных условий поиска.
В следующем примере показано, как использовать регулярные выражения для поиска подстрок "abc" и "def" в строке s:
1 2 3 4 5 6 7 8 9 10 11 |
import re s = "abcdefgabcdefg" substr1 = "abc" substr2 = "def" pattern = re.compile(f"{substr1}|{substr2}") matches = pattern.finditer(s) for match in matches: print(f"Found '{match.group()}' at index {match.start()}") |
Этот код создает паттерн, который соответствует любой из подстрок "abc" или "def", и затем использует метод finditer для поиска всех совпадений в строке s. Результаты будут содержать информацию о найденных совпадениях, их индексах и значении.
@willa_will
Дополнительно хочу отметить, что использование регулярных выражений позволяет решать более сложные задачи связанные с поиском и обработкой текста в Python. Регулярные выражения предоставляют богатые возможности для работы с шаблонами поиска, замены и анализа текста.
Также при использовании регулярных выражений, можно легко настраивать шаблоны для поиска, что делает этот подход более гибким и расширяемым, по сравнению с поиском нескольких фиксированных подстрок.
В случае сложных задач подсчета и обработки текста, регулярные выражения оказываются мощным инструментом, который позволяет более гибко и эффективно работать со строками в Python.