Как удалить любую повторяющуюся букву юникода? - PullRequest
0 голосов
/ 28 мая 2019

На английском языке, иногда у вас есть повторяющиеся буквы вроде этого: hello my hero hhhhhhhhhhh это для h, но я хочу удалить все виды букв, повторяющихся как это 2 или более раз, и заменить их пробелом в юникодной букве. У меня здесь арабский язык. У меня есть только одно письмо, которое я могу удалить, это мой код:

#remove laughing
def remove_laughs(self, text):       
    text=re.sub("ه{2,}", "", text)
    return text

Ответы [ 2 ]

0 голосов
/ 28 мая 2019

любой дублированный символ

import re
re.sub(r'(.)\1+', ' ', 'مرحبا هههههههههه')
# 'مرحبا  '

только буквы

import regex
regex.sub(r'(\pL)\1+', ' ', 'مرحبا هههههههههه')
0 голосов
/ 28 мая 2019

попробуйте это:

from itertools import groupby

def remove_dups(s):
    replace_with = ' '
    return ''.join([x if sum(1 for i in y)<2 else replace_with for x,y in groupby(s)])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...