Wie entferne ich den Platz in der Ausgabe dieser Regex? [Duplikat]

8

Ich verwende Regex in PHP. Das ist mein Skript:

%Vor%

Das Ergebnis war wie folgt:

%Vor%

Ich möchte den Abstand zwischen 20 und 14 entfernen, um das Ergebnis 2014 zu erhalten. Wie mache ich das?

    
ro0xandr 12.09.2014, 13:11
quelle

4 Antworten

4

Du könntest das einfach so machen,

%Vor%     
Avinash Raj 12.09.2014, 13:17
quelle
12

Sie müssen geschweifte Klammern in einfache Anführungszeichen setzen:

%Vor%     
Casimir et Hippolyte 12.09.2014 13:18
quelle
7

Nachdem Sie das preg_replace Handbuch überprüft haben:

  

Wenn Sie mit einem Ersatzmuster arbeiten, bei dem eine Rückreferenz vorhanden ist   unmittelbar gefolgt von einer anderen Nummer (z.B.: Platzieren einer wörtlichen Zahl   unmittelbar nach einem übereinstimmenden Muster), können Sie das Vertraute nicht verwenden    \1 Notation für Ihre Rückreferenz. \11 , zum Beispiel, würde   Verwechsle preg_replace() , da es nicht weiß, ob du das willst    \1 Rückreferenz gefolgt von einem Literal 1 oder \11   Rückreferenz gefolgt von nichts. In diesem Fall ist die Lösung zu verwenden   %Code%. Dies erzeugt eine isolierte ${1}1 Rückreferenz, die zurücklässt.   als ein Literal.

Verwenden Sie daher

%Vor%

oder

%Vor%     
hjpotter92 12.09.2014 13:12
quelle
2

Sie müssen preg_replace_callback() function verwenden:

%Vor%     
Marcin Nabiałek 12.09.2014 13:17
quelle

Tags und Links