„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie entgeht man Backslashes in regulären PHP-Ausdrücken?

Wie entgeht man Backslashes in regulären PHP-Ausdrücken?

Veröffentlicht am 17.11.2024
Durchsuche:923

How to Escape Backslashes in PHP Regular Expressions?

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:

  • Drei Backslashes (\\): Bei Verwendung von drei Backslashes wird das Muster so interpretiert, dass es mit einem einzelnen Backslash-Zeichen (\) übereinstimmt. Wenn das nächste Zeichen im Muster jedoch ebenfalls ein Backslash ist, kann ein wörtlicher Backslash nicht mit nur drei Backslashes abgeglichen werden.
// Matches a single backslash
preg_match( '/\\\/', '\\' );      // 1

// Fails to match a literal backslash followed by a backslash
preg_match( '/\\\\\s/', '\\s' );   // 0
  • Vier Backslashes (\\\\): Andererseits entspricht die Verwendung von vier Backslashes immer einem wörtlichen Backslash, unabhängig vom folgenden Zeichen. Dies liegt daran, dass der vierte Backslash dem dritten Backslash entgeht und ihn zu einem wörtlichen Zeichen macht.
// 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.

Neuestes Tutorial Mehr>

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