kosyachniy
@kosyachniy
Python BackEnd, Web FullStack

Регулярные выражения Как удалить все повторяющиеся буквы более 2х раз подряд?

Удалить все повторения подряд далее 2х символов для букв любого языка

Например:
'veююююvno b fffa a aaaaa nkacvak 777 aa' -> 'veююvno b ffa a aa nkacvak 777 aa'
  • Вопрос задан
  • 1336 просмотров
Решения вопроса 2
longclaps
@longclaps
Хех, даже в напримере накосячил )
print(re.sub(r'(\w)\1+', r'\1\1',
             'veююююvno b fffa a aaaaa nkacvak 777 aa'))

или цифр это не касается? Тогда сложнее:
def f(m):
    s = m.group(0)
    return s if s[0].isdigit() else s[:2]

print(re.sub(r'(\w)\1+', f,
             'на любом языке - так на любом 777 aa მუუუუნჯი 慕尼尼尼尼黑 '))

ps нашлось решение получше:
print(re.sub(r'([^\W\d])\1+', r'\1\1',
             'veююююvno b fffa a aaaaa nkacvak 777 aa მუუუუნჯი 慕尼尼尼尼黑 '))
Ответ написан
kosyachniy
@kosyachniy Автор вопроса
Python BackEnd, Web FullStack
re.sub(r'([а-яa-z])\1+', r'\1\1', s)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы