Regex находит и печатает совпадения многогранника внутри одного совпадения

1

Моя проблема в том, что у меня есть ab+ и я aabbbbba он находит только одно совпадение, когда theres ab, abb, abbb, abbbb, abbbbb.

Мой код находит совпадение в индексе 1, но не учитывает совпадения внутри, и я попробовал все, чтобы попытаться его распечатать с abbbbb на ab. Вот мой код:

import re
exp, srt = input("RegEx,String:").split()
print(srt)
for m in re.finditer(exp, srt,):
   print('"', m.group(0), '"', "is found at index: ", m.start())
Теги:
match

1 ответ

0

Вам нужно будет установить пакет regex, более эффективную альтернативу re. Он поддерживает утверждения lookbehind переменной ширины (в то время как пакет re поддерживает только утверждения lookbehind с фиксированной шириной), поэтому вместо этого можно использовать следующее выражение:

regex.findall(r'(?<=(ab+))', 'aabbbbba')

Это возвращает:

['ab', 'abb', 'abbb', 'abbbb', 'abbbbb']

Ещё вопросы

Сообщество Overcoder
Наверх
Меню