PHP: Reguläre-Ausdruck-Zeichen in String escapen oder maskieren
Frage von Compi | Letztes Update am 02.04.2021 | Erstellt am 07.08.2016
Ich habe einen beliebigen String, den ich gerne als regulären Ausdruck benutzen würde. Nun musste ich feststellen, dass dieser Ausdruck nur dann vernünftig funktioniert, wenn er bestimmte Zeichen nicht enthält.
Zum Beispiel geht es nicht, wenn mein String einen Punkt oder ein Plus-Zeichen enthält. Wenn ich nun aber stattdessen \. oder \+ schreibe, geht es wieder. Das scheint man escapen oder maskieren zu nennen.
Wieso ist das so? Und welche Zeichen müssen alle überhaupt maskiert werden? Umso länger ich mit den regulären Ausdrücken arbeite, umso mehr Zeichen tauchen auf, für die es nötig scheint.
Ähnliche Themen
PHP: Nur bestimmte Buchstaben, Zahlen und Zeichen in einem String zulassen
Tipp | 10 Kommentare
PHP: Strings mit Ctype-Funktionen auf Zeichenklassen überprüfen
Artikel | 0 Kommentare
PHP: Beliebige Zeichen am Anfang und Ende eines Strings entfernen
Tutorial | 0 Kommentare
JavaScript: Letztes Zeichen aus String entfernen
Tipp | 0 Kommentare
URL für Website aus Seitentitel generieren
Tutorial | 0 Kommentare
PHP: Erste Stelle von Zahl oder String auslesen
Tutorial | 0 Kommentare
Textarea Maxlength: Maximale Zeichenanzahl in HTML Textarea begrenzen
Tutorial | 4 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.
Bestimmte Zeichen haben eine besondere Bedeutung innerhalb von regulären Ausdrücken. Der Punkt steht beispielsweise für ein beliebiges Zeichen, das Plus für eine Wiederholung. Um diese speziellen Zeichen mit besonderer Bedeutung von Zeichen zu unterscheiden, die auch als Zeichen interpretiert werden sollen, müssen diese Zeichen entsprechend maskiert werden, was du mit dem voranstellen des \ erreichen kannst.
Die speziellen Zeichen innerhalb regulärer Ausdrücke sind:
Nun musst du aber nicht eine Suchen und Ersetzen Funktion für jedes dieser Zeichen schreiben. Stattdessen kannst du einfach die PHP-Funktion preg_quote() benutzen, die nimmt dir die gesamte Arbeit ab.
Hier würden die Punkte alleine nicht als regulärer Ausdruck funktionieren. Deswegen können wir preg_quote() an und erhalten das gewünschte Ergebnis.
07.08.2016 um 22:00