Escape-Zeichen für Regex-Muster in PHP
In PHP bietet die Funktion preg_quote() eine Möglichkeit, Zeichen innerhalb eines regulären Ausdrucks zu maskieren ( Regex-Muster, die für die Regex-Engine eine besondere Bedeutung haben. Dadurch wird verhindert, dass diese Zeichen als Teil des Musters interpretiert werden, sodass der Ausdruck innerhalb eines anderen Regex-Musters verwendet werden kann, ohne dass es zu Konflikten kommt.
Ähnlich wie die Funktion Regex.Escape() in C# fügt preg_quote() ein hinzu Backslash() vor jedem Zeichen in der Eingabezeichenfolge, das Teil der Regex-Syntax ist. Zu diesen Sonderzeichen gehören:
Standardmäßig maskiert preg_quote() nicht das Trennzeichen, das zum Einschließen des Regex-Musters verwendet wird. Um sicherzustellen, dass das Trennzeichen auch maskiert wird, geben Sie es als zweiten Parameter der Funktion an.
Beispiel:
Angenommen, wir haben eine URL, $url = 'http ://stackoverflow.com/questions?sort=newest‘, den wir in einer von umgebenden Zeichenfolge finden möchten Leerzeichen:
// Escape the characters in the URL and the forward slash (/) delimiter $escapedUrl = preg_quote($url, '/'); // Enclose the Regex pattern in forward slashes $regex = '/\s' . $escapedUrl . '\s/'; // Find occurrences of the URL in the string preg_match($regex, $haystack, $matches); var_dump($matches);
In diesem Beispiel maskiert preg_quote() den Punkt (.), das Fragezeichen (?) und das Gleichheitszeichen (=) in der URL sowie alle Schrägstriche. Infolgedessen kann das von uns erstellte Regex-Muster die URL erfolgreich in der Heuhaufen-Zeichenfolge finden.
Das obige ist der detaillierte Inhalt vonWie kann die Funktion „preg_quote()' von PHP Zeichen für eine sichere Verwendung von Regex-Mustern maskieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!