PHP: Reguläre-Ausdruck-Zeichen in String escapen oder maskieren
Frage von Compi | 07.08.2016 um 21:49
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
JavaScript: Führende Nullen entfernen
Tipp | 0 Kommentare
PHP: Erstes und letztes Zeichen von einem String abschneiden
Frage | 1 Antwort
PHP: UTF-8 String zeichenweise durchlaufen
Frage | 1 Antwort
PHP: Letzte X Zeichen vom Ende eines Strings abschneiden
Frage | 1 Antwort
PHP: Bestimmtes Zeichen in String zählen
Tipp | 0 Kommentare
PHP: X-tes Zeichen von hinten aus einem String auslesen
Frage | 1 Antwort
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