regex: Stichwort finden außer in Links

dhh

Grünschnabel
Hallo zusammen!

Ich hab grad mal ne Frage an die Regex-erfahrenen unter euch. Und zwar habe ich ein Wiki in ein Projekt eingebaut, im Text sollen jetzt alle enthaltenen Stichworte automatisch durch Links zum Wiki-Eintrag ersetzt werden (Prinzip dürfte ja bekannt sein). Funktioniert auch ganz gut, mein Regex dafür ist recht simpel:

PHP:
"/".$r['word']."/i"

Mit preg_replace() wird das ganze dann durch einen Link ersetzt. Nun ist aber ein Problem aufgetaucht (logisch eigentlich...), wenn Stichworte bereits in einem anderen Link enthalten sind. Wie kann ich im Regex bestimmen dass preg_replace() nur matched, wenn das Stichwort sich NICHT in einem Link befindet?

Wäre dankbar für Hinweise wie das geht,
schönen Gruß und schönen Sonntag,
Daniel
 
In Wikis wird dieses Problem aber ganz anders gelöst. Dort sind die Links nämlich explizit ausgewiesen und werden nicht aufgrund der bereits existierende Einträge gesetzt. Das wäre nämlich ein unglaublicher Aufwand.
 
Das ist mir wohl bewusst. Es ist auch weniger ein Wiki als eine FAQ auf einer Produktbeschreibungs-Seite, wo bestimmte Fachbegriffe für Kunden (Laien) verständlich beschrieben werden sollen. Die eingefügten Links enthalten dann Tooltips in denen der jeweilige Fachbegriff kurz erläutert wird. Geht da ca. um 50 - 100 Begriffe die auf der ganzen Webseite durch mein Plugin halt mit einem Tooltip / Link versehen werden sollen.

Nachtrag: in etwa soll das dann so wie unter http://www.administrator.de/Unter_Windows2000_Server_den_Ntp_dienst_starten?.html realisiert werden (die Glossar-Einträge)
 
Zuletzt bearbeitet:
Zurück