Рубрики
Без рубрики

Найти все вхождения подстроки в строке в Python

Чтобы найти все вхождения в строку в Python, мы можем использовать различные функции библиотеки регулярных выражений re.findall() и re.finditer()

Автор оригинала: Team Python Pool.

Найти все вхождения подстроки в строке в Python

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

Что такое подстрока?

Подстрока в Python – это последовательность символов, представленных в другой строке. Например, рассмотрим сильный abaabaabbaab. Здесь arab – это подстрока, встречающаяся дважды в строке. Кроме того, abs – это еще одна подстрока, встречающаяся трижды в строке.

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

Код Python для поиска всех вхождений в строку

1)Использование понимания списка + начинается с() в Python для поиска всех вхождений в строку

Эта функция помогает найти заданную подстроку во всей строке или в заданной части строки.

Синтаксис:

string.startswith(значение, начало, конец)

Список параметров:

  • значение: Это обязательное поле. Он содержит значение, с помощью которого мы проверяем, начинается ли строка с этого значения.
  • start: Это необязательное поле. Это целочисленное значение, которое определяет позицию, с которой следует начать поиск.
  • конец: Это необязательное поле. Это целочисленное значение, которое указывает позицию, с которой следует завершить поиск.

Возвращаемое значение:

Возвращает индекс, по которому найдена данная подстрока.

Вывод и объяснение:

Использование list comprehension + начинается с() для поиска всех вхождений в строку
Использование list comprehension + начинается с() для поиска всех вхождений в строку

Выход

В этом коде входная строка была “python pool for python coding”. Мы выбрали подстроку “python”. Используя функцию starts with() , мы нашли вхождения подстроки в строку. В результате мы нашли подстроку в индексах 0 и 15.

2) Использование re.finditer() в Python для поиска всех вхождений в строку

Это функция href=”https://docs.python.org/3/library/re.html”>библиотека регулярных выражений, предоставляемая python, которая помогает найти вхождение определенного шаблона в строку. href=”https://docs.python.org/3/library/re.html”>библиотека регулярных выражений, предоставляемая python, которая помогает найти вхождение определенного шаблона в строку.

Синтаксис:

re.finditer(шаблон, строка,)

Список параметров:

  • pattern: шаблон, который должен быть согласован

Возвращаемое значение:

Эта функция возвращает итератор неперекрывающихся совпадений для шаблона в строке.

import re 



print("The original string is: " + string) 

print("The substring to find: " + substring) 

result = [i.start() for i in re.finditer(substring, string)] 

print("The start indices of the substrings are : " + str(result))

Вывод и объяснение:

Использование re.finditer() в Python для поиска всех вхождений в строку
Использование re.finditer() в Python для поиска всех вхождений в строку

Выход

В этом коде входная строка была “python pool for python coding”. Мы выбрали подстроку “python”. Используя функцию re.finditer (), мы нашли неперекрывающиеся вхождения подстроки в строке. В результате мы нашли подстроку в индексах 0 и 15.

3) Использование re.findall() в Python для поиска всех вхождений в строку

Эта функция используется для поиска всех неперекрывающихся подстрок в данной строке. Строка тщательно сканируется слева направо, возвращая совпадения в том же порядке.

Синтаксис:

re.finditer(шаблон, строка,)

Список параметров:

  • pattern: шаблон, который должен быть согласован

Возвращаемое значение:

Он возвращает все совпадения шаблона в виде списка строк.

import re 



print("The original string is: " + string) 

print("The substring to find: " + substring) 		
	.findall(substring, string) 
print(result)

Вывод и объяснение:

Использование re.findall() в Python для поиска всех вхождений в строку
Использование re.findall() в Python для поиска всех вхождений в строку

Выход

В этом коде входная строка была “python pool 123 for python 456 coding”. Мы выбрали подстроку “\d+”. Используя функцию re.findall (), мы нашли вхождения подстроки. В этом случае мы ищем целые числа в строке. В результате на выходе получается список, содержащий все целочисленные значения.

Вывод: Python находит все вхождения в строку

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