heinetz: Komisches Verhalten bei regulärem Ausdruck

Beitrag lesen

Hallo Forum,

um Text im Content einer XHTML-Seite farblich zu markieren,
versuche ich ihn durch:

preg_replace('/(>[^<>]*)('.$mark_strA[$z].')([^<>]*<)/i', '${1}<span class="s_result">${2}</span>${3}', $html_str);

... mit einem <span> zu taggen.

Das Resultat ist allerdings merkwürdig. Ein Auszug daraus:

<p>
Die unabhängige Verbraucherberatung Stiftung Warentest hat 9.000 Medikamente für 185 Anwendungsgebiete ge
<span class="s_result">test</span>
et. Es handelt sich um die am häufigsten gekauften rezeptfreien Mittel und die wichtigsten vom Arzt verschriebenen Präparate.
</p>

Gefunden wurde "gestetet". "Warentest" jedoch nicht.

Warum ?
Bzw. Wie sieht das Suchmuster aus, wenn man im HTML-Code nur
innerhalb des angezeigten Textes Ersetzungen vornehmen und
Tags sicher ausschliessen will?

Danke für Tipps und

beste gruesse,
heinetz