Heim >Backend-Entwicklung >PHP-Tutorial >Wie verwende ich Regex, um zu vermeiden, dass Text in HTML-Tags während des Ersetzens geändert wird?
Regex zur Übereinstimmung außerhalb von HTML-Tags für selektives Tagging
Um Übereinstimmungen innerhalb von HTML-Tags zu verhindern, während preg_replace verwendet wird, um Tags zu bestimmten Wörtern hinzuzufügen Für eine HTML-Seite ist es wichtig, einen regulären Ausdruck zu definieren, der diese Bereiche ausschließt.
Original Muster:
preg_replace("/(asf|gfd|oyws)/", '<span>
Schwäche:
Das obige Muster stimmt auch mit Instanzen der Zielwörter innerhalb von HTML-Tags überein, was unerwünscht ist.
Verbessert Muster:
/(asf|foo|barr)(?=[^>]*(<|$))/
Aufschlüsselung:
Wie es Funktioniert:
Dieses Muster stimmt nur dann mit den Zielwörtern überein, wenn ihnen nicht unmittelbar die schließende spitze HTML-Klammer folgt. Dadurch wird der Abgleich außerhalb von HTML-Tags effektiv eingeschränkt und so unbeabsichtigte Änderungen innerhalb dieser Tags verhindert.
Beispiel:
Betrachten Sie den folgenden HTML-Code:
<p>I am making a preg_replace on HTML page. My pattern is aimed to add surrounding tag to some words in HTML. However, sometimes my regular expression modifies HTML tags. For example, when I try to replace this text:</p> <pre class="brush:php;toolbar:false"><a href="example.com" alt="yasar home page">yasar</a>
Mithilfe des erweiterten Musters wird das Zielwort „yasar“ abgeglichen und markiert, während die Instanz innerhalb des „alt“-Attributs des Anker-Tags dies tut unberührt bleiben:
<p>I am making a preg_replace on HTML page. My pattern is aimed to add surrounding tag to some words in HTML. However, sometimes my regular expression modifies HTML tags. For example, when I try to replace this text:</p> <pre class="brush:php;toolbar:false"><a href="example.com" alt="yasar home page">yasar</a>So that yasar reads
Das obige ist der detaillierte Inhalt vonWie verwende ich Regex, um zu vermeiden, dass Text in HTML-Tags während des Ersetzens geändert wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!