Situation
Ich möchte mit preg_replace()
eine Ziffer '8'
nach jedem von [aeiou]
hinzufügen.
Beispiel
von
%Vor%bis
%Vor%
Frage
Wie soll ich die Ersatzzeichenfolge schreiben?
%Vor% Dies ist nur ein Beispiel , daher ist str_replace()
nicht eine gültige Antwort.
Ich möchte wissen, wie man eine Nummer nach der Rückreferenz in der Ersetzungszeichenfolge hat.
Die Lösung besteht darin, die Rückreferenz in ${}
zu verpacken.
was a8bcde8fghi8j
ausgibtSiehe das Handbuch zu diesem Spezialfall mit Rückreferenzen.
>Sie können dies tun:
%Vor%Hier ist ein relevantes Zitat aus der Dokumentation zur Rückreferenz:
Wenn Sie mit einem Ersatzmuster arbeiten, bei dem einer Rückwärtsreferenz unmittelbar eine andere Nummer folgt (d. h. eine Zeichennummer unmittelbar nach einem übereinstimmenden Muster platziert), können Sie nicht die bekannte \ 1-Notation für Ihre Rückwärtsreferenz verwenden. \ 11 zum Beispiel würde preg_replace () verwirren, da es nicht weiß, ob Sie die \ 1-Rückwärtsreferenz gefolgt von einer Literal-1 oder die \ 11-Rückwärtsreferenz gefolgt von nichts wollen. In diesem Fall sollte die Lösung \ $ {1} 1 sein. Dies erzeugt eine isolierte $ 1-Rückwärtsreferenz, wobei die 1 als Literal zurückbleibt.
Tags und Links escaping php regex backreference