Escapando barras invertidas em expressões regulares PHP
Para escapar de uma barra invertida em um padrão de expressão regular PHP, pode-se usar três barras invertidas (\\ ) ou quatro barras invertidas (\\\\). Embora ambas as opções produzam correspondências bem-sucedidas, há diferenças sutis em sua interpretação e uso.
Casos de teste:
Considere os seguintes casos de teste:
// TEST 01: (3 backslashes) $pattern = "/^[\\\]{1,}$/"; $string = '\\'; // ----- RETURNS A MATCH ----- // TEST 02: (4 backslashes) $pattern = "/^[\\\\]{1,}$/"; $string = '\\'; // ----- ALSO RETURNS A MATCH -----
Em ambos os casos, uma correspondência é retornada, indicando que três e quatro barras invertidas podem ser usadas para escapar de uma barra invertida.
Interpretação e 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
Recomendação:
Com base nessas observações, é recomendado sempre usar quatro barras invertidas (\\\\) em um padrão regex ao procurar corresponder uma barra invertida. Essa abordagem garante consistência e previsibilidade na correspondência de padrões.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3