Reguläre Ausdrücke

Suchbegriffe in HTML highlighten

Ich denke, ich habe einen recht brauchbaren RegEx gefunden, um Suchbegriffe in HTML zu highlighten und dabei den Inhalt von Tags zu ignorieren. Befindet sich der Suchbegriff beispielsweise in einem href-Attribut eines a-Tags, sollte der natürlich nicht „gehighlighted“ werden.

$html = preg_replace(
    pattern: '/(?![^<>]*>)'.preg_quote($searchTerm, '/').'/ui',
    replacement: '<mark class="tag">$0</mark>',
    subject: $html
);

Naja, wenn es um Tags geht, könnte ich evtl. auf preg_quote() verzichten. Aber der Vollständigkeit halber… 

So im Nachhinein denke ich mir natürlich: „Hmm… Profan!“ Aber ich bin mir sicher, in einem Jahr müsste ich mir wieder den Kopf zerbrechen. Ich habe das gesucht, um in der HTML-Ansicht meines Zettelkastens die assoziierten Tags im Fließtext hervorzuheben.