WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   preg_replace Frage (http://www.wcm.at/forum/showthread.php?t=172562)

waquner 24.08.2005 14:03

preg_replace Frage
 
Hoi,

In meinem Blog werden bestimmte "Insider"-Wörter verlinkt, der Link führt dann zu einem Glossar mit einer kurzen Erklärung.

Bisher habe ich dazu folgenden Code verwendet:
PHP-Code:

$text preg_replace('#(rtw|ktw|rr|eb)#i','<a href="(...)$\1(...)</a>',$text); 

(das (...) steht dabei natürlich für weiteren html-code)
Das störende ist dabei jedoch dass zB das Kürzel rr auch innerhalb eines Wortes verlinkt wird (Zb irritieren), also dachte ich das ganze noch zusätzlich auf ein whitespace links und rechts davon zu überprüfen

PHP-Code:

$text preg_replace('#(\\srtw\\s|\\sktw\\s|\\srr\\s|\\seb\\s)#i','<a href="(...)$1(...)</a>',$text); 

Das erbringt zwar den gewünschten effekt, dass zB das rr in irritiert nicht mehr verlinkt wird, jedoch wird jetz nicht nur das kürzel/WOrt selber verlinkt, sondern auch die whitespaces links und rechts, und das is auch nicht so ganz das was ich haben will.

Wie könnte man das ganze eleganter oder einfach gscheid funktionierend lösen? Bin nicht so der RegEx-Pro, bin froh das hingebracht zu haben:)

Danke!

MfG waquner

käptn 24.08.2005 15:07

Code:

#\b(rtw|ktw|rr|eb)\b#i
~

waquner 25.08.2005 19:19

danke


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag