Поиск позиции шаблона с помощью модуля re в Python - PullRequest
1 голос
/ 13 марта 2011

Я просмотрел несколько методов, предоставляемых модулем re, но не смог найти способ, который дает позицию шаблона.

Например, рассмотримследующий код:

import re

text = '23132102301211213302'

x=re.findall(r'21',text)

print x

Вывод:

['21', '21', '21']

Я просто получаю список из 21 в качестве вывода, что бесполезно для моих целей.Мне было интересно, если бы был метод, подобный findall, который дает позиции 21, а не только 21 (т.е. первый 21 происходит в положении 4, второй в положении 11 ...)

2313 * 21 * 02301211213302 -> позиция: 4

23132102301 * 21 * 1213302 -> позиция: 11

23132102301211 * 21* 3302 -> позиция: 14

Таким образом, желаемый результат должен быть [4,11,14].Есть ли метод re для этого?

1 Ответ

2 голосов
/ 13 марта 2011

re.finditer() дает вам MatchObjects, которые, помимо прочего, делают позицию доступной.

Начало объекта совпадения m задается m.start(), а конец - m.end(), если вы тоже этого хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...