Regex zur Vermeidung von Änderungen an HTML-Tags
Beim Durchführen von preg_replace für HTML-Inhalte muss unbedingt sichergestellt werden, dass der reguläre Ausdruck nicht versehentlich geändert wird HTML-Tags ändern. Um dies zu erreichen, können Sie eine Assertion verwenden, um Übereinstimmungen innerhalb von HTML-Tags auszuschließen.
Stellen Sie sich das folgende Szenario vor: Um bestimmte Wörter auf einer HTML-Seite hervorzuheben, versuchen Sie, sie in ein einzuschließen. Etikett. Ihr aktueller regulärer Ausdruck /( ersetzt jedoch auch Instanzen des Worts innerhalb von HTML-Attributen, wie z. B. dem Alt-Attribut des Anker-Tags.
Um dieses Problem zu beheben, können Sie eine Lookahead-Behauptung verwenden, die überprüft, ob das Wort steht nach einem > oder vor <. Lookahead-Behauptungen ermöglichen variable Längen, sodass der folgende reguläre Ausdruck geeignet ist:
/(asf|foo|barr)(?=[^>]*(<|$))/
Dieser reguläre Ausdruck stellt sicher, dass die Übereinstimmung nach jedem > oder vor jedem < erfolgt. Eine detaillierte Erklärung dieser Behauptungssyntax finden Sie unter http://www.regular-expressions.info/lookaround.html. Sie können Übereinstimmungen innerhalb von HTML-Tags ausschließen und den Inhalt außerhalb von Tags präzise ändern.
Das obige ist der detaillierte Inhalt vonWie kann verhindert werden, dass Regex HTML-Tags während „preg_replace' ändert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!