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

Содержание

Способ 1: использование оператора in

Оператор in — это один из самых простых и быстрых способов узнать, есть ли в строке подстрока. Если подстрока найдена, оператор вернёт значение True, в противном случае — False.

# Define the main string
string = "I live in USA"

# Define the substring to be searched
substring = "USA"

# Use 'in' operator to check if substring is present in string
if substring in string:
    print("Substring found")
else:
    print("Substring not found")

Приведенный выше код проверяет, присутствует ли данная подстрока в данной строке.

  • Основная строка хранится в переменной строке, а искомая подстрока хранится в переменной подстроке.
  • В коде используется оператор in для проверки наличия подстроки в строке. Если это так, код выводит на консоль «Подстрока найдена». Если нет, код выводит «Подстрока не найдена».

Python находит подстроку в строке с помощью оператора in

Метод 2: использование метода find()

Метод find() — это ещё один простой способ найти подстроку в строке. Он возвращает индекс первого символа подстроки в строке. Если подстрока не найдена, то возвращается значение -1.

# Define the main string
string = "I live in USA"

# Define the substring to be searched
substring = "USA"

# Use the find() method to get the index of the substring
index = string.find(substring)

# Check if the substring is found
if index != -1:
    print("Substring found at index", index)
else:
    print("Substring not found")

В приведенном выше коде используется метод find() для поиска индекса заданной подстроки в заданной строке.

  • Метод find() используется для поиска индекса подстроки в строке, а результат сохраняется в переменной index.
  • Если подстрока найдена, индекс будет установлен как индекс первого символа подстроки в строке. Если подстрока не найдена, индексу будет присвоено значение -1.
  • Затем код проверяет, не равен ли индекс -1. Если это не так, подстрока найдена, и код выводит «Подстрока найдена по индексу», за которой следует значение индекса.
  • Если индекс равен -1, подстрока не найдена и код выводит «Подстрока не найдена».

Метод 2: использование метода find()

Метод 3: использование метода index()

Метод index() аналогичен методу find(), но он вызывает исключение ValueError, если подстрока не найдена в строке.

# Search for substring in a given string
string = "I live in USA"

# The substring we want to search for
substring = "live"

# Use try-except block to handle potential ValueError if substring is not found
try:
    # Find the index of the substring in the string using the index() method
    index = string.index(substring)
    # Print a success message with the index of the substring
    print("Substring found at index", index)
except ValueError:
    # If the substring is not found, print a message indicating that it was not found
    print("Substring not found")

Приведенный выше код проверяет, присутствует ли данная подстрока в строке.

  • Входная строка — «Я живу в США», а подстрока, которую мы хотим найти, — «живая».
  • В коде используется блок try-кроме для обработки потенциальной ошибки, связанной с невозможностью найти подстроку в строке.
  • Метод index() используется для поиска индекса подстроки в строке. Если подстрока найдена, код печатает сообщение, указывающее индекс подстроки в строке.
  • Если подстрока не найдена, возникает ошибка ValueError, которая перехватывается блоком исключений, и печатается сообщение, указывающее, что подстрока не найдена.

Python находит подстроку в строке, используя индексный метод

Способ 4: использование модуля re

Модуль re (регулярные выражения) содержит мощные инструменты для поиска и сопоставления подстрок в тексте.

# Use the re module for pattern matching
import re

# The string we want to search in
string = "I live in USA"

# The substring we want to search for
substring = "in"

# Use the search() method from the re module to find a match
match = re.search(substring, string)

# Check if a match was found
if match:
    # If a match was found, print a success message
    print("Substring found")
else:
    # If no match was found, print a failure message
    print("Substring not found")

Приведенный выше код проверяет, присутствует ли данная подстрока в строке, используя регулярные выражения (регулярное выражение).

  • Первая строка import re импортирует модуль re, который предоставляет функции для сопоставления шаблонов в строках.
  • Входная строка — «Я живу в США», а подстрока, которую мы хотим найти, — «в». Затем код использует метод re.search() для поиска соответствия между подстрокой и входной строкой.
  • Метод re.search() возвращает объект соответствия, если между подстрокой и входной строкой существует совпадение, в противном случае он возвращает None.
  • Затем код использует оператор if, чтобы проверить, найдено ли совпадение. Если совпадение найдено, код печатает сообщение, указывающее, что подстрока найдена.
  • Если совпадение не найдено, код печатает сообщение, указывающее, что подстрока не найдена.

Python находит подстроку в строке, используя модуль re

Метод 5: использование метода openswith()

Метод openswith() возвращает True, если строка начинается с указанной подстроки. Если же это не так, то возвращается False.

# The string we want to search in
string = "I live in USA"

# The substring we want to search for
substring = "I"

# Use the startswith() method to check if the string starts with the substring
if string.startswith(substring):
    # If the string starts with the substring, print a success message
    print("Substring found")
else:
    # If the string does not start with the substring, print a failure message
    print("Substring not found")

Приведенный выше код проверяет, находится ли данная подстрока в начале строки.

  • Входная строка — «Я живу в США», а подстрока, которую мы хотим найти, — «Я». В коде используется метод Beginswith(), чтобы проверить, начинается ли входная строка с подстроки.
  • Метод Beginswith() возвращает True, если входная строка начинается с подстроки, и False в противном случае. Затем код использует оператор if для проверки результата метода Beginswith().
  • Если входная строка начинается с подстроки, код печатает сообщение, указывающее, что подстрока найдена. Если входная строка не начинается с подстроки, код печатает сообщение, указывающее, что подстрока не найдена.

Python находит подстроку в строке, используя метод Beginswith

Метод 6: использование метода Endswith()

Метод Endswith() похож на метод Beginswith(), но он возвращает True, если строка заканчивается определённой подстрокой, и False, если это не так.

# The string we want to search in
string = "I live in USA"

# The substring we want to search for
substring = "USA"

# Use the endswith() method to check if the string ends with the substring
if string.endswith(substring):
    # If the string ends with the substring, print a success message
    print("Substring found")
else:
    # If the string does not end with the substring, print a failure message
    print("Substring not found")

Приведенный выше код проверяет, находится ли данная подстрока в конце строки.

  • Входная строка — «Я живу в США», а подстрока, которую мы хотим найти, — «США». В коде используется метод endwith(), чтобы проверить, заканчивается ли входная строка подстрокой.
  • Метод Endswith() возвращает True, если входная строка заканчивается подстрокой, и False в противном случае. Затем код использует оператор if для проверки результата метода Endswith().
  • Если входная строка заканчивается подстрокой, код печатает сообщение, указывающее, что подстрока найдена. Если входная строка не заканчивается подстрокой, код печатает сообщение, указывающее, что подстрока не найдена.

Python находит подстроку в строке, используя метод Endswith

Метод-7: использование метода Split()

Метод Split() позволяет разделить строку на список подстрок с использованием указанного разделителя. После этого можно осуществлять поиск нужной подстроки в полученных подстроках.

# The string we want to search in
string = "I live in USA"

# The substring we want to search for
substring = "USA"

# Split the string into substrings using the split() method and store the result in a list
substrings = string.split(" ")

# Check if the substring is in the list of substrings
if substring in substrings:
    # If the substring is in the list, print a success message
    print("Substring found")
else:
    # If the substring is not in the list, print a failure message
    print("Substring not found")

Приведенный выше код проверяет, содержится ли данная подстрока внутри строки.

  • Входная строка — «Я живу в США», а подстрока, которую мы хотим найти, — «США». Код разбивает входную строку на подстроки с помощью метода Split() и сохраняет результат в виде списка подстрок.
  • Метод Split() разбивает строку на подстроки, используя указанный разделитель(в данном случае пробел).
  • Далее код использует оператор in, чтобы проверить, находится ли подстрока в списке подстрок. Если подстрока есть в списке, код печатает сообщение, указывающее, что подстрока найдена.
  • Если подстроки нет в списке, код печатает сообщение о том, что подстрока не найдена.

Python находит подстроку в строке, используя метод разделения

Метод 8: использование метода separation()

Метод separation() делит строку на три части: часть до разделителя, сам разделитель и часть после разделителя.

# The string we want to search in
string = "I live in USA"

# The substring we want to search for
substring = "I"

# Use the partition() method to split the string into three parts
before, delimiter, after = string.partition(" ")

# Check if the first part of the split string is equal to the substring
if before == substring:
    # If the first part is equal to the substring, print a success message
    print("Substring found")
else:
    # If the first part is not equal to the substring, print a failure message
    print("Substring not found")

Приведенный выше код проверяет, находится ли данная подстрока в начале строки.

Входная строка — «Я живу в США», а подстрока, которую мы хотим найти, — «Я». В коде используется метод separation() для разделения входной строки на три части:

  • Часть до указанного разделителя, сам разделитель и часть после разделителя. В данном случае разделителем является пробел.
  • Метод раздела() возвращает кортеж с тремя элементами: часть до разделителя, сам разделитель и часть после разделителя.
  • В коде используется распаковка кортежа, чтобы назначить три части переменным до, разделителю и после.
  • Далее код использует оператор if, чтобы проверить, равна ли первая часть разделенной строки (т. е. перед) подстроке.
  • Если первая часть равна подстроке, код печатает сообщение, указывающее, что подстрока найдена. Если первая часть не равна подстроке, код печатает сообщение, указывающее, что подстрока не найдена.

Метод 8: использование метода separation()

Метод 9: использование метода count()

Метод count() возвращает количество вхождений подстроки в строке.

# The string we want to search in
string = "I live in USA"

# The substring we want to search for
substring = "live"

# Use the count() method to count the number of times the substring appears in the string
count = string.count(substring)

# Print the result
print("Substring found", count, "times")

Приведенный выше код подсчитывает, сколько раз данная подстрока появляется в строке.

  • Входная строка — «Я живу в США», а подстрока, которую мы хотим найти, — «живая». В коде используется метод count() для подсчета количества раз, которое подстрока появляется в строке.
  • Наконец, код использует функцию print() для печати результата, указывающего, сколько раз подстрока была найдена в строке.

Python находит подстроку в строке, используя метод count

Метод 10: использование метода rfind()

Метод rfind() похож на метод find(), но он находит последнее вхождение подстроки в строке. Если подстрока не найдена, метод возвращает -1.

# The string we want to search in
string = "I live in USA"

# The substring we want to search for
substring = "USA"

# Use the rfind() method to find the last index of the substring in the string
index = string.rfind(substring)

# Check if the substring was found
if index != -1:
    # If the substring was found, print the index
    print("Substring found at index", index)
else:
    # If the substring was not found, print a message
    print("Substring not found")

Приведенный выше код ищет последнее вхождение заданной подстроки в строку.

  • Входная строка — «Я живу в США», а подстрока, которую мы хотим найти, — «США». Код использует метод rfind() для поиска последнего индекса подстроки в строке.
  • Метод rfind() возвращает индекс последнего вхождения подстроки в строку или -1, если подстрока не найдена. Таким образом, код проверяет, не равно ли возвращаемое значение -1, что указывает на то, что подстрока найдена в строке.
  • Наконец, код использует функцию print() для печати результата, указывающего индекс последнего вхождения подстроки в строку.

Python находит подстроку в строке, используя метод rfind

Метод 11: использование понимания списка

# The string we want to search in
string = "I live in USA"

# The substring we want to search for
substring = "USA"

# Use a list comprehension to find if the substring exists in the string split into words
result = [word for word in string.split() if word == substring]

# Check if the result list is not empty
if result:
    # If the result list is not empty, the substring was found
    print("Substring found")
else:
    # If the result list is empty, the substring was not found
    print("Substring not found")

Приведенный выше код проверяет, существует ли данная подстрока в строке.

  • Входная строка — «Я живу в США», а подстрока, которую мы хотим найти, — «США». Код использует понимание списка для создания списка слов из входной строки, где каждое слово проверяется, равно ли оно заданной подстроке.
  • Функция распознавания списка перебирает слова во входной строке, которая разбивается с помощью метода Split(), и добавляет слово в список результатов, если оно равно заданной подстроке.
  • Наконец, код использует оператор if, чтобы проверить, не пуст ли список результатов. Если список результатов не пуст, это означает, что подстрока была найдена во входной строке, поэтому код печатает «Подстрока найдена».
  • Если список результатов пуст, подстрока не найдена во входной строке, поэтому код печатает «Подстрока не найдена».

Python находит подстроку в строке, используя понимание списка

Метод 12: использование re.findall()

Функция re.findall() используется для поиска всех непересекающихся совпадений определённого шаблона в строке. Мы можем применить эту функцию, чтобы найти все вхождения подстроки в строку. Для этого нам нужно указать искомую подстроку в качестве шаблона.

# Import the regular expression library 're'
import re

# The input text to search for the substring
text = "I live in USA"

# The substring to search for in the text
substring = "USA"

# Find all occurrences of the substring in the text using the 'findall' method from the 're' library
result = re.findall(substring, text)

# Print the result
print(result)

В приведенном выше коде библиотека регулярных выражений re импортируется и используется для поиска всех вхождений данной подстроки «США» во входной текст «Я живу в США».

Добавить комментарий