Te sugerimos que pruebes esta respuesta en un ambiente controlado antes de enviarlo a producción, saludos.
Solución:
También puede usar este patrón con regex
:
import re
a = '''hello? there A-Z-R_T(,**), world, welcome to python.
this **should? the next line#followed- [email protected] an#other %million^ %%like $this.'''
for k in a.split("n"):
print(re.sub(r"[^a-zA-Z0-9]+", ' ', k))
# Or:
# final = " ".join(re.findall(r"[a-zA-Z0-9]+", k))
# print(final)
Producción:
hello there A Z R T world welcome to python
this should the next line followed by an other million like this
Editar:
De lo contrario, puede almacenar las líneas finales en un list
:
final = [re.sub(r"[^a-zA-Z0-9]+", ' ', k) for k in a.split("n")]
print(final)
Producción:
['hello there A Z R T world welcome to python ', 'this should the next line followed by an other million like this ']
Creo que la respuesta de nfn neil es excelente … pero solo agregaría una expresión regular simple para eliminar todos los caracteres sin palabras, sin embargo, considerará el guión bajo como parte de la palabra
print re.sub(r'W+', ' ', string)
>>> hello there A Z R_T world welcome to python
Una solución más elegante sería
print(re.sub(r"W+|_", " ", string))
>>> hello there A Z R T world welcome to python this should the next line followed by another million like this
Aquí,
re
es regex
modulo en python
re.sub
sustituirá el patrón con el espacio, es decir, " "
r''
tratará la entrada string como crudo (with n)
W
para todas las no palabras, es decir, todos los caracteres especiales *&^%$, etc., excepto el guión bajo _
+
coincidirá de cero a coincidencias ilimitadas, similar a * (uno a más)
|
es lógico O
_
significa guión bajo
Reseñas y valoraciones
Si conservas alguna vacilación o forma de medrar nuestro sección te sugerimos escribir una apostilla y con gusto lo leeremos.