Skeeve: Regulärer Ausdruck für Links

Beitrag lesen

Moin!

Seid gegrüßt!

So ich habe jetz
preg_replace(~                 // Beschr.              Bsp.          Nr.
   <a href="
    ([a-zA-Z.]+)              //Buchstaben, Punkt     index.php     1
    (?:?)                     //das Fragezeichen      ?             2
    (.+)?                      //irgendwas             text=asd      3
    "~,

'$1;$3&amp;' . SID .'">', $tpl_source);
geht aber immer noch ne!

Könntest du /ihr mir evtl. noch mal helfen.

1. Ist das zu kompliziert, 2. ist Dein "3" in Wahrheit "3" weil Dein "2" nicht gezählt wird (?: ) ist nur zur Gruppierung, nicht fürs Capture.

preg_replace(
  ~(<a href="[^"?]+)??~, '$1?'. SID .'&amp;', $tpl_source);

Sollte es tun. Allerdings kenne ich PHP nicht gut.

Noch besser ist:
~(<a\b[^>]+\bhref="[^"?]+)??~
Falls da ein onmouseover oder sowas zwischen steht.

-- Skeeve