Заключите в скобки регулярное выражение, которое вы хотите повторить.Например, если вам нужно 5 повторений ABC
:
(ABC){5}
или если вы хотите любое количество повторений (0 или более):
(ABC)*
или одно или несколько повторений:
(ABC)+
изменить , чтобы ответить на обновление
Скобки в регулярных выражениях делают две вещи;они группируют последовательность элементов в регулярном выражении, так что вы можете применить оператор ко всей последовательности вместо только последнего элемента, и они захватывают содержимое этой группы, чтобы вы могли извлечь подстроку, которая соответствовала этому подвыражениюв регулярном выражении.
Вы можете вкладывать скобки;они считаются с первого открытия парен.Например:
>>> re.search('[0-9]* (ABC(...))', '123 ABCDEF 456').group(0)
'123 ABCDEF'
>>> re.search('[0-9]* (ABC(...))', '123 ABCDEF 456').group(1)
'ABCDEF'
>>> re.search('[0-9]* (ABC(...))', '123 ABCDEF 456').group(2)
'DEF'
Если вы хотите избежать захвата при группировании, вы можете использовать (?:
.Это может быть полезно, если вы не хотите, чтобы круглые скобки просто использовались для группировки последовательности с целью применения оператора для изменения нумерации ваших совпадений.Это также быстрее.
>>> re.search('[0-9]* (?:ABC(...))', '123 ABCDEF 456').group(1)
'DEF'
Поэтому, чтобы ответить на ваше обновление, вы можете использовать вложенные группы захвата или даже вообще не захватывать внутреннюю группу:
>>> re.search('((?:ABC){5})(DEF)', 'ABCABCABCABCABCDEF').group(1)
'ABCABCABCABCABC'
>>> re.search('((?:ABC){5})(DEF)', 'ABCABCABCABCABCDEF').group(2)
'DEF'