Eliminar salto de línea final

1 minuto de lectura

avatar de usuario de mathewraj7786
matewraj7786

Tengo una base de datos MySQL de la que extraigo una cadena que es una lista de palabras separadas por una nueva línea. Ahora quiero eliminar solo la nueva línea final.

Intenté usar preg_replace como

$string = preg_replace('/\n/','',$string);

Funciona, pero se eliminan todas las líneas nuevas en las cadenas 🙁

¿Cómo puedo hacer esto?

avatar de usuario de codaddict
coadicto

Necesita agregar el ancla de fin de línea:

$string = preg_replace('/\n$/','',$string);

Es mejor evitar expresiones regulares para una sustitución tan simple. Esto se puede hacer fácilmente usando Recortar como:

$string = rtrim($string);

rtrim sin el segundo argumento eliminará los espacios en blanco finales que incluyen:

  • nueva línea
  • espacio
  • pestaña vertical
  • pestaña horizontal
  • retorno de carro

  • ¿Esto elimina todos los espacios en blanco, o solo dura?

    – cli

    16/09/2015 a las 18:09


  • rtrim elimina todos los espacios en blanco finales

    – Javier S.

    24 de mayo a las 16:55

avatar de usuario de soulmerge
fusión del alma

No utilice expresiones regulares para una tarea tan trivial. Puedes usar PHP rtrim() (posiblemente con "\n" como el segundo parámetro) o substr() (me gusta substr($string, 0, -1)) o MySQL RTRIM().

  • me gusta mucho mas esta respuesta

    – César Bielich

    18/09/2017 a las 19:19

  • rtrim(“\n”) no funcionó para mí. $cadena = preg_replace(‘/\n$/’,”,$cadena); funcionó bien

    – smolo

    19 de marzo de 2021 a las 5:05

¿Ha sido útil esta solución?