Работает как есть (кроме слешей по краям, которые не нужны в Python):
pattern = r'^1?$|^(11+?)\1+$'
re.match(pattern, '1'*10) #matches
re.match(pattern, '1'*11) #doesn't match
Единственная нестандартная функция регулярных выражений, необходимая здесь, - это обратные ссылки (\1
), которые поддерживаются как в Perl, так и в Python.