Al probar una respuesta para another user's question encontré algo que no entiendo. El problema era reemplazar todos los caracteres literales \t
\n
\r
de una cadena con un espacio simple.Se necesita una barra invertida adicional en el patrón de expresiones regulares PHP
Ahora, el primer patrón que probé fue:
/(?:\\[trn])+/
que, sorprendentemente, no funcionó. Probé el mismo patrón en Perl y funcionó bien. Después de algún ensayo y error descubrí que quiere PHP 3 o 4 barras invertidas para ese patrón a la altura, como en:
/(?:\\\\[trn])+/
o
/(?:\\\[trn])+/
estos patrones - a mi sorpresa - tanto trabajo. ¿Por qué son estas barras invertidas adicionales necesarias?
se integran en el lenguaje, por lo que necesita sólo dos barras invertidas. –