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?
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
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