Как работать с последовательностями символов в регулярных выражениях?

Задача найти в строке (CDCDCDFFCDFFFCD) последовательность символов, в которой будет ровно две подстроки "CD" и я не понимаю как работает синтаксис регулярных выражений

print(re.findall('(СD)+', s))

Этот код выводит "CD", хотя в приведенной выше строке "CD" повторяется подряд 3 раза, а скобки вроде как объединяют, то что внутри них написано.

Как работать с последовательностями символов в регулярных выражениях?


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

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

Если я вас правильно понял:

import re

string = "CDCDCDFFCDFFFCD"
print(re.findall('(?:CD){2}', string))

Вывод:

['CDCD']
  • Используем "non-capturing group" (?:), чтобы можно было группировать символы без того, чтобы они попадали в виде этой группы в итоговую выдачу
  • Задаём нужное количество повторений для группы с помощью фигурных скобок {}
→ Ссылка