Поиск индекса подстроки в строке

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

import re
for m in re.finditer(pattern, text):
    print('%2d-%2d: %s' % (m.start(), m.end(), m.group(0)))

Вывод:

1-4: pattern
18-21: pattern

Ответы (1 шт):

Автор решения: Zhihar

ну раз у вас уже есть некоторый итерируемый объект (re.finditer(pattern, text)), то оберните его в enumerate и получите на выходе для каждого элемента кортеж (индекс, элемент)

import re

pattern = "раз"
text = "раз два три раз три два раз раз"

for obj in enumerate(re.finditer(pattern, text)):
    print('%d | %2d-%2d: %s' % (obj[0], obj[1].start(), obj[1].end(), obj[1].group(0)))
→ Ссылка