искать с (\S*?)(.)\2{2,}(\S*)
и заменить на \1\2\3 (\2long)
So:
text = re.sub(r"(\S*?)(.)\2{2,}(\S*)", r"\1\2\3 (\2long)", the_input_string)
Вход:
"whatheever", «cooool» и «haaaapy», сохраните только
Станет:
«что угодно», (elong) «col», (olong) и «hapy», (вдоль) сохранить только
Если вы измените шаблон поиска на
(\S*?)(.)\2{2,}(\w*)
, тогда выход может быть"whatever(elong)",
, а не"whatever", (elong)
Вы можете протестировать здесь: https://www.regexplanet.com/share/index.html?share=yyyyyrbm63d