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'
  • Вопрос задан
  • 161 просмотр
Решения вопроса 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)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
Popmechanic Москва
от 100 000 до 150 000 руб.
Panda Media Нижний Новгород
от 70 000 руб.
НЛ Континент Новосибирск
от 60 000 до 100 000 руб.
15 авг. 2018, в 01:47
30000 руб./за проект
15 авг. 2018, в 01:09
70000 руб./в месяц
14 авг. 2018, в 22:43
350 руб./за проект