Quiero reemplazar instancias repetidas del carácter "*"
dentro de una cadena con una sola instancia de "*"
. Por ejemplo, si la cadena es "***abc**de*fg******h"
, quiero que se convierta a "*abc*de*fg*h"
.Cómo reemplazar instancias repetidas de un carácter con una instancia única de ese carácter en python
estoy bastante nuevo en Python (y la programación en general) y trató de usar expresiones regulares y String.Replace() como:
import re
pattern = "***abc**de*fg******h"
pattern.replace("*"\*, "*")
donde \*
se supone que reemplazar todas las instancias de la "* " personaje. Pero obtuve: SyntaxError: carácter inesperado después del carácter de continuación de línea.
También trató de manipularlo con un bucle for como:
def convertString(pattern):
for i in range(len(pattern)-1):
if(pattern[i] == pattern[i+1]):
pattern2 = pattern[i]
return pattern2
pero esto tiene el error en el que sólo imprime "*" porque patrón2 = patrón [i] redefine constantemente lo que es patrón2 ...
Cualquier ayuda sería apreciada.
Muchas gracias, esto funciona bien, voy a leer el artículo sobre RE para averiguar qué está pasando exactamente con la parte "\ +" del código. No sabía que podrías usar múltiples símbolos en conjunto. Pensé que solo podrías usar "+" o "*" por ejemplo. – NSchrading
@NSchrading: en '" \\ * + "', estoy escapando del * carácter porque es un símbolo de re especial. Así que comparo un carácter literal *, y el + significa uno o más. – JoshD