Ich frage mich, ob irgendjemand da draußen etwas Licht in die Frage bringen kann, warum der folgende reguläre Ausdruck fehlschlägt, wenn er in der preg_match-Funktion von PHP verwendet wird: -
%Vor%Dies führt zu der Fehlermeldung "preg_match (): Kompilierung fehlgeschlagen: nicht übereinstimmende Klammern" trotz der Tatsache, dass das Muster gültig scheint. Ich habe es mit einem PHP Regular Expression Tester und dem Linux Tool Kiki getestet. Scheint so, als würde PHP die öffnende Klammer und nicht den umgekehrten Schrägstrich verlassen.
Ich habe das Problem durch Verwendung von str_replace gelöst, um die umgekehrten Schrägstriche gegen die vorderen zu tauschen. Dies funktioniert für meine Situation, aber es wäre nett zu wissen, warum dieser reguläre Ausdruck fehlschlägt.
Um einen umgekehrten Schrägstrich zu codieren, müssen Sie ihn zweimal entschlüsseln: Einmal für die Zeichenfolge und einmal für die Regex-Engine:
%Vor%In PHP (bei Strings mit einfachen Anführungszeichen) ist dies nur für tatsächliche Backslashes relevant; Andere Regex-Escapes sind in Ordnung mit einem einzelnen Backslash:
%Vor%Dies ist in dem Handbuch beschrieben (siehe Kasten "Hinweis:" oben auf der Seite).
Tags und Links php regex preg-match