Как заменить повторяющиеся экземпляры символа одним экземпляром этого символа в python

Я хочу заменить повторяющиеся экземпляры символа «*» в строке с одним экземпляром «*» . Например, если строка имеет вид «*** abc ** de * fg ****** h ", я хочу, чтобы он был преобразован в " * abc * de * fg * h ".

I ' m довольно плохо знаком с python (и программированием в целом) и пытался использовать регулярные выражения и string.replace (), например:

import re    
pattern = "***abc**de*fg******h"
pattern.replace("*"\*, "*")

где \ * должен заменить все экземпляры символа «*». Но я получил: SyntaxError: неожиданный символ после символа продолжения строки.

Я также пытался манипулировать им с помощью цикла for, например:

def convertString(pattern):
for i in range(len(pattern)-1):
    if(pattern[i] == pattern[i+1]):
        pattern2 = pattern[i]
return pattern2

, но здесь есть ошибка, при которой выводится только "*", потому что pattern2 = pattern [i] постоянно переопределяет, что такое pattern2 ...

Любая помощь приветствуется.

20
задан NSchrading 7 October 2010 в 03:56
поделиться