"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo escapar de las barras invertidas en expresiones regulares de PHP?

¿Cómo escapar de las barras invertidas en expresiones regulares de PHP?

Publicado el 2024-11-17
Navegar:292

How to Escape Backslashes in PHP Regular Expressions?

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:

  • Tres barras invertidas (\\): Cuando se utilizan tres barras invertidas, el patrón se interpreta como si coincidiera con una sola barra invertida (\ ) personaje. Sin embargo, si el siguiente carácter en el patrón también es una barra invertida, una barra invertida literal no puede coincidir con solo tres barras invertidas.
// Matches a single backslash
preg_match( '/\\\/', '\\' );      // 1

// Fails to match a literal backslash followed by a backslash
preg_match( '/\\\\\s/', '\\s' );   // 0
  • Cuatro barras invertidas (\\\\): Por otro lado, el uso de cuatro barras invertidas siempre coincide con una barra invertida literal, independientemente del carácter siguiente. Esto se debe a que la cuarta barra invertida escapa a la tercera barra invertida, lo que la convierte en un carácter literal.
// 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.

Último tutorial Más>

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