Comment remplacer les occurrences d'un caractère avec une seule instance de ce personnage en python

Je veux remplacer les instances répétées de la "*" caractère dans une chaîne, avec une seule instance de "*". Par exemple, si la chaîne est "***abc**de*fg******h", je veux qu'il se converti à "*abc*de*fg*h".

Je suis assez nouveau à python (et de la programmation en général) et essayé d'utiliser des expressions régulières et de la corde.replace() comme:

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

\* est censé remplacer toutes les occurrences du caractère"*". Mais j'ai eu: SyntaxError: unexpected caractère après caractère de continuation de ligne.

J'ai aussi essayé de le manipuler avec une boucle for comme:

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

mais cela a l'erreur où il imprime seulement les "*" les car pattern2 = pattern[i] constamment redéfinit ce qu'pattern2 est...

Toute aide serait appréciée.

OriginalL'auteur NSchrading | 2010-10-07