Ed X: Reg. Exp., die Zweite

Beitrag lesen

Hi,

ich hab da ein kleines Problem.

while ($text =~ /[link](.+)[/link]/g)   {
      my $image = "<a href="$1" target="parent">$1</a>";
      $text =~ s/[link].+[/link]/$image/;
      }

Jetzt ist es aber so, wenn es im Text so aussieht [link]blablabla.html[/link] mehr text mehr text [link]neuerlink.html[/link] , er alles zwischen dem ersten [link] und letzten [/link] als Link sieht. Wie kann ich den regulären Ausdruck so ändern, daß er jeden Link seperat erkennt ?

Du brauchst einen "nichtgefräßigkeits operator" - non-greedy.
und der ist ein Fragezeichen.
/[link](.+?)[/link]/g müsste eigentlich reichen.
http://selfhtml.teamone.de/cgiperl/sprache/regexpr.htm#gierig_genuegsam

bye eddie