Backslashes in regulären PHP-Ausdrücken maskieren
Um einen Backslash in einem regulären PHP-Ausdrucksmuster zu maskieren, kann man drei Backslashes verwenden (\\ ) oder vier Backslashes (\\\\). Obwohl beide Optionen zu erfolgreichen Übereinstimmungen führen, gibt es geringfügige Unterschiede in ihrer Interpretation und Verwendung.
Testfälle:
Bedenken Sie die folgenden Testfälle:
// TEST 01: (3 backslashes) $pattern = "/^[\\\]{1,}$/"; $string = '\\'; // ----- RETURNS A MATCH ----- // TEST 02: (4 backslashes) $pattern = "/^[\\\\]{1,}$/"; $string = '\\'; // ----- ALSO RETURNS A MATCH -----
In beiden Fällen wird eine Übereinstimmung zurückgegeben, die angibt, dass sowohl drei als auch vier Backslashes verwendet werden können, um einem Backslash zu entgehen.
Interpretation und Verwendung:
// 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
Empfehlung:
Basierend auf diesen Beobachtungen wird empfohlen, bei der Suche nach Übereinstimmungen immer vier Backslashes (\\\\) in einem Regex-Muster zu verwenden ein Backslash. Dieser Ansatz gewährleistet Konsistenz und Vorhersagbarkeit beim Mustervergleich.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3