Группирующие скобки в регулярках Python
В предыдущих примерах операторы повторения действовали только на один символ, который стоял перед ними. Что делать, если нужно подействовать им на несколько символов?
Для этого существуют группирующие скобки
'(' и
. Они работают так:
если что-то стоит в группирующих скобках
и сразу после ')'
')'
стоит оператор
повторения - он подействует на все, что
стоит внутри скобок.
В следующем примере шаблон поиска выглядит
так: буква 'x'
, далее строка
'ab'
один или более раз, потом буква
'x'
:
txt = 'xabx xababx xaabbx'
res = re.sub('x(ab)+x', '!', txt)
print(res)
Результат выполнения кода:
'! ! xaabbx'
Дана строка:
txt = 'ab abab abab abababab abea'
Напишите регулярку, которая найдет строки
по шаблону: строка 'ab'
повторяется
1
или более раз.