Maison > développement back-end > tutoriel php > Comment échapper aux barres obliques inverses dans les expressions régulières PHP ?

Comment échapper aux barres obliques inverses dans les expressions régulières PHP ?

Barbara Streisand
Libérer: 2024-11-16 04:20:03
original
476 Les gens l'ont consulté

How to Escape Backslashes in PHP Regular Expressions?

Échapper aux barres obliques inverses dans les expressions régulières PHP

Pour échapper aux barres obliques inverses dans un modèle d'expression régulière PHP, on peut utiliser soit trois barres obliques inverses (\) ou quatre barres obliques inverses (\\). Bien que les deux options donnent des correspondances réussies, il existe des différences subtiles dans leur interprétation et leur utilisation.

Cas de test :

Considérez les cas de test suivants :

// TEST 01: (3 backslashes)
$pattern = "/^[\\]{1,}$/";
$string = '\';

// ----- RETURNS A MATCH -----

// TEST 02: (4 backslashes)
$pattern = "/^[\\]{1,}$/";
$string = '\';

// ----- ALSO RETURNS A MATCH -----
Copier après la connexion

Dans les deux cas, une correspondance est renvoyée, indiquant que trois et quatre barres obliques inverses peuvent être utilisées pour échapper à une barre oblique inverse.

Interprétation et utilisation :

  • Trois barres obliques inverses (\) : Lorsque vous utilisez trois barres obliques inverses, le motif est interprété comme correspondant à un seul caractère barre oblique inverse (). Cependant, si le caractère suivant du modèle est également une barre oblique inverse, une barre oblique inverse littérale ne peut pas être mise en correspondance en utilisant seulement trois barres obliques inverses.
// Matches a single backslash
preg_match( '/\\/', '\' );      // 1

// Fails to match a literal backslash followed by a backslash
preg_match( '/\\\s/', '\s' );   // 0
Copier après la connexion
  • Quatre barres obliques inverses (\\) : D'un autre côté, l'utilisation de quatre barres obliques inverses correspond toujours à une barre oblique inverse littérale, quel que soit le caractère suivant. En effet, la quatrième barre oblique inverse échappe à la troisième barre oblique inverse, ce qui en fait un caractère littéral.
// Matches a literal backslash followed by any character
preg_match( '/\\\s/', '\s' );   // 1
Copier après la connexion

Recommandation :

Sur la base de ces observations, il est Il est recommandé de toujours utiliser quatre barres obliques inverses (\\) dans un modèle d'expression régulière lorsque vous cherchez à faire correspondre une barre oblique inverse. Cette approche garantit la cohérence et la prévisibilité de la correspondance de modèles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal