5
В этой статье мы расскажем о четырех способах найти подстроку в строке. У каждого способа есть плюсы и минусы — о них мы также кратко поговорим.
Друзья, подписывайтесь на наш телеграм канал Pythonist. Там еще больше туториалов, задач и книг по Python.
Простейший способ проверить наличие подстроки в строке — оператор in. Он используется для проверки наличия элемента в какой-либо структуре данных. Этот оператор возвращает булево значение — True или False. Пример:
fullstring = "pythonist"
substring = "python"
if substring in fullstring:
print "Подстрока найдена!"
else:
print "Подстрока не найдена!" Этот оператор — сокращенный вызов метода __contains__. Он подходит и для проверки наличия элемента в списке.
Тип string имеет метод index. Он возвращает наименьший индекс, по которому обнаруживается начало подстроки в строке. Если подстрока не найдена, то возбуждается исключение ValueError. Реализовать его можно с помощью блока try-except-else.
fullstring = "pythonist"
substring = "python"
try:
fullstring.index(substring)
except ValueError:
print "Подстрока не найдена!"
else:
print "Подстрока найдена!" Этот метод может особенно пригодиться, если вам нужно найти индекс подстроки, а не просто узнать о ее существовании.
Тип string имеет еще один метод — find. Он удобнее, чем index, потому что благодаря ему нам не нужно думать об обработке ошибок. Если метод не находит подстроку в строке, он возвращает -1. В случае успеха он возвращает наименьший индекс, по которому обнаруживается подстрока.
fullstring = "pythonist"
substring = "python"
if fullstring.find(substring) != -1:
print "Подстрока найдена!"
else:
print "Подстрока не найдена!" Если вы не хотите обрабатывать ошибки — отдайте предпочтение этому методу, а не index.
Регулярные выражения — более гибкий способ нахождения подстрок в строках. В Python есть встроенный модуль, позволяющий работать с регулярными выражениями, — re. Модуль re содержит функцию search, которая позволит вам найти подстроку:
from re import search
fullstring = "pythonist"
substring = "python"
if search(substring, fullstring):
print "Подстрока найдена!"
else:
print "Подстрока не найдена!" Если вам нужны сложные сопоставления, например, учет регистра — этот метод подойдет вам лучше всего. Но у него есть и недостатки: сложность и скорость работы. То есть, в простеньких задачах его лучше не использовать.
Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…
Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…
Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…
В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…
Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…
Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…