Hallo,
Ich hab ein Regulären Ausdruck geschrieben, der Helfen soll, Wörter überall außer innerhalb von Tags, also innerhalb der < und > zu ersetzen und nicht in Überschriften. Leider funktioniert dieser nur bei Tags mit Attributen. Ich find und find den Fehler aber nicht!! Würde mich über bisschen Unterstützung freuen Hier mein RegEx:
<\D[^>|^span|^h1|^h2]*
Ein Tag, das nicht span oder h1 oder h2 ist
[\s]?.[^>]*
Hier versuche ich ihm zu sagen, dass er erst ein whitespace tolerieren soll und dann ein biliebiges Zeichen, außer das Ende des Tags.
[^<]*
Natürlich darf vor und nach dem Wort noch irgendetwas sein, außer ein neues Tag
<\/\D[^>]*>
Fast das selbe wie am Anfang, nur ohne Ausschluss von Tags, ohne Attribute und mit / am Anfang.
Ich hab ein Regulären Ausdruck geschrieben, der Helfen soll, Wörter überall außer innerhalb von Tags, also innerhalb der < und > zu ersetzen und nicht in Überschriften. Leider funktioniert dieser nur bei Tags mit Attributen. Ich find und find den Fehler aber nicht!! Würde mich über bisschen Unterstützung freuen Hier mein RegEx:
PHP:
$pattern = "#(<\D[^>|^span|^h1|^h2]*[\s]?.[^>]*>[^<]*)".preg_quote($row['term'])."([^<]*<\/\D[^>]*>)#i";
<\D[^>|^span|^h1|^h2]*
Ein Tag, das nicht span oder h1 oder h2 ist
[\s]?.[^>]*
Hier versuche ich ihm zu sagen, dass er erst ein whitespace tolerieren soll und dann ein biliebiges Zeichen, außer das Ende des Tags.
[^<]*
Natürlich darf vor und nach dem Wort noch irgendetwas sein, außer ein neues Tag
<\/\D[^>]*>
Fast das selbe wie am Anfang, nur ohne Ausschluss von Tags, ohne Attribute und mit / am Anfang.