una - suma de cadenas python




¿Cómo eliminar símbolos de una cadena con Python? (2)

Esta pregunta ya tiene una respuesta aquí:

Soy un principiante con Python y RegEx, y me gustaría saber cómo hacer una cadena que tome símbolos y los reemplace con espacios. Cualquier ayuda es genial.

Por ejemplo:

how much for the maple syrup? $20.99? That's ricidulous!!!

dentro:

how much for the maple syrup 20 99 That s ridiculous

A menudo solo abro la consola y busco la solución en los métodos de los objetos. Muy a menudo ya está allí:

>>> a = "hello ' s"
>>> dir(a)
[ (....) 'partition', 'replace' (....)]
>>> a.replace("'", " ")
'hello   s'

Respuesta corta: Use string.replace() .


A veces toma más tiempo descifrar la expresión regular que simplemente escribirla en python:

import string
s = "how much for the maple syrup? $20.99? That's ricidulous!!!"
for char in string.punctuation:
    s = s.replace(char, ' ')

Si necesita otros caracteres, puede cambiarlo para usar una lista blanca o ampliar su lista negra.

Lista blanca de muestra:

whitelist = string.letters + string.digits + ' '
new_s = ''
for char in s:
    if char in whitelist:
        new_s += char
    else:
        new_s += ' '

Ejemplo de lista blanca usando una expresión de generador:

whitelist = string.letters + string.digits + ' '
new_s = ''.join(c for c in s if c in whitelist)




string