Regelmäßige Ersetzung in PHP verwenden
preg_replace-Einführung
preg_replace – Führt eine reguläre Ausdruckssuche und -ersetzung
preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) : mixed
durch, um nach Teilen des Betreffs zu suchen, die mit dem Muster übereinstimmen, und sie durch Ersetzung zu ersetzen.
preg_replace-Parameter
Muster
Das Muster, nach dem gesucht werden soll. Kann eine Zeichenfolge oder ein Array von Zeichenfolgen sein.
Einige PCRE-Modifikatoren können verwendet werden.
Ersetzung
Eine Zeichenfolge oder ein Array von Zeichenfolgen, die zum Ersetzen verwendet werden sollen. Wenn dieses Argument eine Zeichenfolge und Muster ein Array ist, werden alle Muster durch diese Zeichenfolge ersetzt. Wenn Muster und Ersetzung beide Arrays sind, wird jedes Muster durch das entsprechende Ersetzungselement ersetzt. Wenn die Ersetzung weniger Elemente enthält als das Muster, wird das zusätzliche Muster durch eine leere Zeichenfolge ersetzt.
Ersetzung kann Rückverweise\n oder $n enthalten, letzteres wird grammatikalisch bevorzugt. Jeder dieser Verweise wird durch den von der n-ten passenden Erfassungsuntergruppe erfassten Text ersetzt. n kann 0-99 sein, \0 und $0 repräsentieren den vollständigen Mustervergleichstext. Die Methode zur Zählung der Seriennummern bei der Erfassung von Untergruppen lautet: Die linke Klammer, die die erfassende Untergruppe darstellt, wird von links nach rechts beginnend bei 1 gezählt. Wenn Sie Backslashes als Ersatz verwenden möchten, müssen Sie 4 ("\\" verwenden, Anmerkung des Übersetzers: Da dies zunächst eine PHP-Zeichenfolge ist, sind es nach dem Escape zwei, und dann wird es von der Engine für reguläre Ausdrücke als Original betrachtet Backslash).
Wenn Sie im Ersetzungsmodus arbeiten und auf den Rückverweis eine andere Zahl folgen muss (zum Beispiel: Hinzufügen einer ursprünglichen Zahl unmittelbar nach einem passenden Muster), können Sie die \1-Syntax nicht zum Beschreiben von Rückverweisen verwenden. Beispielsweise führt \11 dazu, dass preg_replace() nicht erkennt, ob eine \1-Rückreferenz gefolgt von einer ursprünglichen 1 oder eine \11-Rückreferenz gefolgt von nichts gewünscht wird. Die Lösung besteht in diesem Fall darin, ${1}1 zu verwenden. Dadurch wird eine separate $1-Rückreferenz erstellt, eine separate Quelle1.
Bei Verwendung des veralteten e-Modifikators maskiert diese Funktion einige Zeichen (z. B. ', " und NULL) und führt dann eine Rückreferenzersetzung durch. Bitte stellen Sie sicher, dass eine Rückreferenzierung erfolgt, wenn dies erledigt ist. Nach dem Parsen gibt es keine Syntaxfehler, die durch einfache Anführungszeichen oder doppelte Anführungszeichen verursacht werden (zum Beispiel: „strlen('$1')+strlen("$2")'. Stellen Sie sicher, dass es der Zeichenfolgensyntax von PHP entspricht und der Auswertungssyntax entspricht Verwenden Sie die Ergebniszeichenfolge als PHP-Code mithilfe der Methode eval und verwenden Sie den Rückgabewert als Zeichenfolge, die letztendlich im Ersetzungs-
subject
enthalten ist, oder als Zeichenfolge, die durchsucht und ersetzt werden soll .
Wenn das Subjekt ein Array ist, wird die Suche und Ersetzung für jedes Element des Subjekts durchgeführt, und der Rückgabewert ist ebenfalls ein Array. >Die maximale Anzahl von Ersetzungen pro Muster ist. .
count
Wenn angegeben, wird mit der Anzahl der abgeschlossenen Ersetzungen gefüllt 🎜>
preg_replace-Rückgabewert
Wenn Betreff ein Array, preg_replace() gibt ein Array zurück, andernfalls wird ein String zurückgegeben. Wenn es gefunden wird, wird das ersetzte Subjekt zurückgegeben, andernfalls wird das unveränderte Subjekt zurückgegeben. Wenn ein Fehler auftritt, wirdzurückgegeben.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie den regulären Ersatz in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!