Python: проверьте, содержит ли строка подстроку

В этой статье мы рассмотрим четыре способа использования Python, чтобы проверить, содержит ли строка подстроку. У каждого есть свои варианты использования и плюсы / минусы, некоторые из которых мы кратко рассмотрим здесь: 1) Оператор in Самый простой способ проверить, содержит ли строка Python подстроку, - использовать оператор in. Оператор in используется для проверки структур данных на принадлежность к Python. Он возвращает логическое значение (True или False) и может использоваться следующим образом: fullstring = "StackAbuse" substring = "tack", если

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

1) Оператор in

Самый простой способ проверить, содержит ли строка Python подстроку, - использовать оператор in Оператор in используется для проверки структур данных на принадлежность к Python. Он возвращает логическое значение ( True или False ) и может использоваться следующим образом:

 fullstring = "StackAbuse" 
 substring = "tack" 
 
 if substring in fullstring: 
 print "Found!" 
 else: 
 print "Not found!" 

Этот оператор является сокращением для вызова __contains__ объекта, а также хорошо работает для проверки наличия элемента в списке.

2) Метод String.index()

Тип String в Python имеет метод, называемый index который можно использовать для поиска начального индекса первого вхождения подстроки в строку. Если подстрока не найдена, ValueError исключение ValueError, которое можно обработать с помощью блока try-except-else:

 fullstring = "StackAbuse" 
 substring = "tack" 
 
 try: 
 fullstring.index(substring) 
 except ValueError: 
 print "Not found!" 
 else: 
 print "Found!" 

Этот метод полезен, если вам нужно знать позицию подстроки, а не просто ее наличие в полной строке.

3) Метод String.find()

Тип String имеет другой метод, называемый find который более удобен в использовании, чем index , потому что нам не нужно беспокоиться об обработке каких-либо исключений. Если find не находит совпадения, он возвращает -1, в противном случае он возвращает крайний левый индекс подстроки в большей строке.

 fullstring = "StackAbuse" 
 substring = "tack" 
 
 if fullstring.find(substring) != -1: 
 print "Found!" 
 else: 
 print "Not found!" 

Если вы предпочитаете избегать перехвата ошибок, предпочтение следует отдавать этому методу, а не index .

4) Регулярные выражения (REGEX)

Регулярные выражения предоставляют более гибкий (хотя и более сложный) способ проверки строк на соответствие шаблону. Python поставляется со встроенным модулем для регулярных выражений, который называется re . Модуль re содержит функцию под названием search , которую мы можем использовать для сопоставления с шаблоном подстроки следующим образом:

 from re import search 
 
 fullstring = "StackAbuse" 
 substring = "tack" 
 
 if search(substring, fullstring): 
 print "Found!" 
 else: 
 print "Not found!" 

Этот метод лучше всего подходит, если вам нужна более сложная функция сопоставления, например сопоставление без учета регистра. В противном случае следует избегать усложнения и более медленной скорости регулярного выражения для простых случаев использования сопоставления подстрок.

об авторе

Эта статья была написана Якобом Стопаком, консультантом по программному обеспечению и разработчиком, стремящимся помочь другим улучшить свою жизнь с помощью кода. Джейкоб является создателем Initial Commit - сайта, посвященного тому, чтобы помочь любознательным разработчикам узнать, как написаны их любимые программы. Его избранный проект помогает людям изучать Git на уровне кода.

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus