07.10.2012, 14:10
Der Parser ist leider so ausgelegt, daß sich die Codes gegenseitig auf die Füße treten können. Das hat Vorteile etwa wenn ein schräger MyCode benutzt wird um Links nachträglich zu modifizieren, aber auch Nachteile weil dann solche Konflikte auftreten wie bei dir.
Du müsstest dein Pattern so anpassen daß es nicht innerhalb von HTML-Tags matchen kann. Ob man das mit Assertions einfach realisieren kann weiß ich nicht, die Patterns würden dann zumindest recht teuer werden, insbesondere wenn du viele solcher Wörter hast.
Die Assertion müsste sicherstellen daß vor dem Wort entweder der Stringanfang oder ein >[^<]* liegt - und selbst das löst noch nicht sowas wie <a href="">http://dein wort hier</a>. Die Assertion würde das href in Ruhe lassen aber das Wort im sichtbaren Link ersetzen und damit wahrscheinlich kaputt machen.
Für eine optimale Lösung bräuchtest du dann schon ein Plugin, das alle diese Sonderfälle für dich behandelt.
Du müsstest dein Pattern so anpassen daß es nicht innerhalb von HTML-Tags matchen kann. Ob man das mit Assertions einfach realisieren kann weiß ich nicht, die Patterns würden dann zumindest recht teuer werden, insbesondere wenn du viele solcher Wörter hast.
Die Assertion müsste sicherstellen daß vor dem Wort entweder der Stringanfang oder ein >[^<]* liegt - und selbst das löst noch nicht sowas wie <a href="">http://dein wort hier</a>. Die Assertion würde das href in Ruhe lassen aber das Wort im sichtbaren Link ersetzen und damit wahrscheinlich kaputt machen.
Für eine optimale Lösung bräuchtest du dann schon ein Plugin, das alle diese Sonderfälle für dich behandelt.