Heim > Artikel > Backend-Entwicklung > Wie kann ich mit PHP Regex Schlüsselwörter außerhalb von Anker-Tags abgleichen?
Übereinstimmende Schlüsselwörter außerhalb von HTML-Anker-Tags () mithilfe eines regulären PHP-Ausdrucks
In der Webentwicklung kann es Situationen geben, in denen Sie Sie müssen Schlüsselwörter innerhalb von HTML-Inhalten abgleichen und ersetzen und dabei bestimmte Bereiche wie Hyperlinks meiden. Dies kann mithilfe regulärer PHP-Ausdrücke erreicht werden.
Problemstellung:
Die vorliegende Aufgabe besteht darin, ein Muster für reguläre Ausdrücke zu finden, das mit dem Schlüsselwort „keyword“ übereinstimmt, es aber ausschließt Instanzen, die in Ankertags eingeschlossen sind (Schlüsselwort).
Lösung:
Um dieses Problem effektiv zu lösen, kann der folgende reguläre PHP-Ausdruck verwendet werden verwendet:
<code class="php">$str = preg_replace('~Moses(?!(?>[^<]*(?:<(?!/?a\b)[^<]*)*)</a>)~i', '<a href="novo-mega-link.php"></a>', $str);</code>
Erklärung:
Arbeitsprinzip:
Anfänglich der reguläre Ausdruck passt zu „Moses“. Wenn jedoch die folgenden Bedingungen erfüllt sind, wird kein Abgleich durchgeführt:
Wenn alle diese Bedingungen erfüllt sind, stimmt das Muster nicht mit dem Schlüsselwort überein. Folglich ist es vom Ersatz ausgeschlossen.
Das obige ist der detaillierte Inhalt vonWie kann ich mit PHP Regex Schlüsselwörter außerhalb von Anker-Tags abgleichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!