Пропустить до содержимого

Как проверить наличие подстроки в строке на Python?

[

Как подтвердить наличие подстроки в строке Python

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

raw_file_content = """Привет и добро пожаловать.
Это особый скрытый файл с СЕКРЕТОМ.
Я не хочу рассказывать тебе Секрет,
но я хочу секретно сказать тебе, что у меня есть один."""
"secret" in raw_file_content

Оператор членства in дает вам быстрый и читаемый способ проверить, присутствует ли подстрока в строке. Вы можете заметить, что строка кода читается почти как на английском языке.

Примечание: Если вы хотите проверить, не содержится ли подстрока в строке, вы можете использовать оператор not in:

"secret" not in raw_file_content

Поскольку подстрока "secret" присутствует в raw_file_content, оператор not in возвращает False.

Когда вы используете in, выражение возвращает логическое значение:

  • True, если Python нашел подстроку
  • False, если Python не нашел подстроку

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

if "secret" in raw_file_content:
print("Найдено!")

В этом фрагменте кода вы используете оператор членства, чтобы проверить, является ли "secret" подстрокой raw_file_content. Если является, то вы выведете сообщение в консоль.

В следующих разделах вы узнаете, как обобщить проверку, удалив регистр, и как искать подстроки с использованием регулярных выражений. Также вы узнаете, как найти подстроку в столбце DataFrame в библиотеке pandas.

Обобщение проверки путем удаления регистра

Иногда вам может потребоваться проверить наличие подстроки, игнорируя регистр букв. Например, если вы хотите проверить наличие слова без учета регистра, вы можете использовать метод .lower() для приведения обеих строк к нижнему регистру перед сравнением:

s1 = "Hello, World!"
s2 = "hello"
if s2.lower() in s1.lower():
print("Найдено!")

В этом случае обе строки приводятся к нижнему регистру с помощью метода .lower(), а затем производится проверка наличия подстроки.


Узнайте больше о подстроке

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

  • .find(substring) - возвращает индекс первого вхождения подстроки в строку или -1, если подстрока не найдена.
  • .index(substring) - возвращает индекс первого вхождения подстроки в строку или вызывает исключение ValueError, если подстрока не найдена.
  • .count(substring) - возвращает количество вхождений подстроки в строку.
  • .replace(old, new) - заменяет все вхождения подстроки old на подстроку new.
  • .startswith(substring) - возвращает True, если строка начинается с подстроки.
  • .endswith(substring) - возвращает True, если строка оканчивается подстрокой.

Изучение этих методов поможет вам более гибко работать с подстроками в Python.


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

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

Вот пример использования регулярного выражения для поиска подстроки в строке:

import re
s = "Hello, World! Hello, Python!"
if re.search("Hello", s):
print("Найдено!")

В этом примере мы используем функцию re.search(), которая ищет подстроку “Hello” в строке s. Если подстрока найдена, то выводится соответствующее сообщение.


Поиск подстроки в столбце DataFrame в библиотеке pandas

Если вам нужно найти подстроку в столбце DataFrame в библиотеке pandas, вы можете использовать метод .str.contains().

Вот пример использования метода .str.contains() для поиска подстроки в столбце DataFrame:

import pandas as pd
data = {"Name": ["John", "Jane", "Steve", "Alice"],
"Age": [28, 32, 35, 40]}
df = pd.DataFrame(data)
subset = df[df["Name"].str.contains("Jo")]
print(subset)

В этом примере мы создаем DataFrame с данными о людях, а затем используем метод .str.contains() для поиска всех строк, в которых в столбце “Name” содержится подстрока “Jo”. Результатом будет DataFrame, содержащий только строки, удовлетворяющие условию поиска.


Заключение

В этом руководстве вы узнали, как подтвердить наличие подстроки в строке Python, используя оператор членства in. Вы также изучили, как обобщить проверку, удалив регистр, и как искать подстроки с использованием модуля re или метода .str.contains() в библиотеке pandas.

Надеюсь, эта информация будет полезна для вас при работе со строками в Python.