EisFuX: Reguläre Ausdrücke (PCRE)

Beitrag lesen

Hi Sue,

auch Dir tausend Dank - echt klasse, besonders, daß Du mir gleich einen verwendbaren Quelltext dazugegeben hast!

Ja, man tut, was man kann ... ;-)

Dumme Frage wo kommt $1 in Deinem Beispiel her?

  
preg_replace(  
  '/\[{2}([^\]]+)\]{2}/e', // Suchmuster  
  '\'<a href="'.$url_prefix.'\'.urlencode("$1").\'">$1</a>\'', // "Ersetzen"-String  
  $text_alt  // Heuhaufen  
)  

Das kommt daher, weil preg_replace() mit regulären Ausdrücken arbeitet. Damit bastelt man "Suchmuster", mit deren Hilfe preg_replace() den "Heuhaufen" $text_alt durchsucht. Setzt man in diesem Suchmuster bestimmte Teile in runde Klammern, so erzeugen die preg-Befehle von PHP eine so genannte Rückreferenz (engl. "back reference"). Auf die kann man dann im "Ersetzen"-Parameter zurückgreifen. Um diese Referenzen zu unterscheiden, werden sie einfach der Reihe nach durchnummeriert. Die erste Klammer erhält also die Nummer eins. Daher das "$1".

Und wenn du jetzt immer noch nicht genug von regulären Ausdrücken hast, kannst du ja mal hier weiterlesen:
http://www.php-resource.de/tutorials/read/10/1/

oder auch hier:
http://de.wikipedia.org/wiki/Regulärer_Ausdruck

oder hier:
http://pcre.nophia.de/intro/index.php

oder auf Englisch hier:
http://www.tote-taste.de/X-Project/regex/

MffG
EisFuX

--
Auch meine Hosenträger sind intelligent, in dem Sinne, dass man sie regulieren kann. Sie besitzen ein adaptives Verhalten.
Stanisław Lem