¿Cómo se recortan los espacios en blanco?
¿Existe una función de Python que recorte los espacios en blanco (espacios y tabulaciones) de una cadena?
Ejemplo: t cadena de ejemplo
→ cadena de ejemplo
.
1023
15
Espacio en blanco en ambos lados:
Espacio en blanco en el lado derecho:
Espacio en blanco en el lado izquierdo:
Como señala thedz, se puede proporcionar un argumento para eliminar caracteres arbitrarios a cualquiera de estas funciones de esta manera:
Esto eliminará cualquier espacio,
\t
,\n
, o\r
caracteres del lado izquierdo, derecho, o ambos lados de la cadena.Los ejemplos anteriores sólo eliminan los caracteres de los lados izquierdo y derecho de las cadenas. Si quiere eliminar también los caracteres del centro de una cadena, pruebe con
re.sub
:Esto debería imprimirse:
El método "Trim" de Python se llama "Strip":
Para los espacios en blanco iniciales y finales:
En caso contrario, funciona una expresión regular:
También puedes usar una función muy simple y básica: [str.replace()][1], funciona con los espacios en blanco y las pestañas:
Simple y fácil. [1]: https://docs.python.org/2/library/stdtypes.html#str.replace
Nadie ha publicado estas soluciones regex todavía.
Coincidencia:
Buscando (tienes que manejar el "sólo espacios" introducir el caso de forma diferente):
Si usas
re.sub
, puedes eliminar el espacio blanco interior, lo que podría ser indeseable....y la de los demás; (re.sub(' +', ' ',(my_str.replace('\n',' ')))).strip()
Esto eliminará todos los espacios no deseados y los caracteres de la nueva línea. Espero que esto ayude
Esto resultará:
' a b \N c ' se cambiará a 'a b c'
El espacio en blanco incluye espacio, pestañas y CRLF. Así que una elegante y unica función de cadena que podemos usar es traducir.
`' hola apple'.translate(None, ' \"No, no, no, no, no, no
O si quieres ser minucioso
salida: por favor, retire todos los espacios en blanco
Si se usa Python 3: En su declaración impresa, termine con sep="". Eso separará todos los espacios.
EJEMPLO:
Esto se imprimirá Me encantan las patatas.
En lugar de: Me encantan las patatas.
En tu caso, ya que estarías tratando de conseguir el paseo del \ ~ - Hacer sep="\ ~ -quot;;
intenta traducir
Si quieres recortar el espacio en blanco sólo al principio y al final de la cadena, puedes hacer algo como esto:
Esto funciona de manera muy parecida al método QString::trimmed() de Qt', ya que elimina los espacios blancos delanteros y traseros, mientras que deja en paz los espacios blancos internos.
Pero si quieres algo como el método Qt'::simplified() de QString, que no sólo elimina los espacios en blanco anteriores y posteriores, sino también "squishes" todos los espacios en blanco internos consecutivos a un carácter espacial, se puede usar una combinación de
.split()
y `" "coño;... unir", así:En este último ejemplo, cada secuencia de espacios en blanco internos fue reemplazada por un solo espacio, mientras que se seguía recortando el espacio en blanco al principio y al final de la cadena.
En general, estoy usando el siguiente método:
Nota: Esto es sólo para quitar "n;, "r"; y "cociente"; sólo. No elimina los espacios extra.
para eliminar los espacios en blanco de la mitad de la cuerda
salida:
Esto eliminará todos los espacios en blanco y las nuevas líneas tanto del principio como del final de una cadena: