Escapar de barras invertidas en expresiones regulares de PHP
Para escapar de una barra invertida en un patrón de expresión regular de PHP, se pueden usar tres barras invertidas (\\ ) o cuatro barras invertidas (\\\\). Si bien ambas opciones producen coincidencias exitosas, existen diferencias sutiles en su interpretación y uso.
Casos de prueba:
Considere los siguientes casos de prueba:
// TEST 01: (3 backslashes) $pattern = "/^[\\\]{1,}$/"; $string = '\\'; // ----- RETURNS A MATCH ----- // TEST 02: (4 backslashes) $pattern = "/^[\\\\]{1,}$/"; $string = '\\'; // ----- ALSO RETURNS A MATCH -----
En ambos casos, se devuelve una coincidencia, lo que indica que se pueden usar tres y cuatro barras invertidas para escapar de una barra invertida.
Interpretación y uso:
// Matches a single backslash preg_match( '/\\\/', '\\' ); // 1 // Fails to match a literal backslash followed by a backslash preg_match( '/\\\\\s/', '\\s' ); // 0
// Matches a literal backslash followed by any character preg_match( '/\\\\\s/', '\\s' ); // 1
Recomendación:
En base a estas observaciones, se recomienda utilizar siempre cuatro barras invertidas (\\\\) en un patrón de expresiones regulares cuando se busca hacer coincidir una barra invertida. Este enfoque garantiza coherencia y previsibilidad en la coincidencia de patrones.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3