删除单词中的重复字符

时间:2019-05-22 14:52:38

标签: python regex

我正在尝试清除数据集的文本,并且许多单词拼写错误,例如,很多时候我会看到“ hellllo”一词。我希望删除重复的字符,其中一个字符连续重复两次以上。显然,这不适用于“ nooooo”之类的词,因为那样会将其转换为“ noo”,但是我已经具有处理此书面内容的功能。我要做的就是将诸如“ hellllo”之类的单词转换为“ hello”。

1 个答案:

答案 0 :(得分:0)

这是一个通用函数,可以处理任意数量的重复:

def remove_multiple(s, n=2):
    '''
    param s: string
    param n: number of max repetition allowed in the string
    '''
    if n < 0:
        return
    elif n==1:
        return ''.join(sorted(set(s), key=s.index))
    elif n > 1:
        temp = []
        temps = s + ' '*n
        for i, c in enumerate(s):
            if len(set(temps[i:n+1+i])) > 1:
                temp.append(c)
        return "".join(temp)

>>> remove_multiple('helllllllllllllllooooooooooooooo', 2)
Out: 'helloo'
>>> remove_multiple('helllllllllllllllooooooooooooooo', 5)
Out[]: 'helllllooooo'