Günter Laudenklos: regexp Problemchen/Frage

Beitrag lesen

Hallo Forum,
vor allem die PERL Chracks ;)

z.Zt.schreibe ich gerade ein kleines Script um HTML Dokumente auszulesen und aufzubereiten.
Bei einer kleinen Unterroutine stehe ich wohl etwas auf dem Schlauch ....
vielleicht sehe ich auch den Wald vor lauter Bäumen nicht mehr.

Problem ist das Auslesen von ALT= und TITLE= Parametern in HTML Tags:

----- snip ----

$_  enthält HTML Text-String , \n ist bereits entfernt.,

#                  ALT + TITLE Texte sollen in $stringa verkettet werden

while($_ =~ /<(.*?)>/igo)
{
$itag = $1;   # save inner TAG strings - umladen muss sein,
if($itag =~ / (?:alttitle)="(.*?)"/igo)     # da $1 ansonsten Mist enthält
{ $stringa .= "$1 " if($1); }  # join alt="any" oder title="thing" text-strings
}

----- snip ----

Das läuft auch so, aber ich wollte es noch etwas kürzer und habe folgendes geschrieben

---- snip ----

while($_ =~ /<(?:.*?\s+)(?:alttitle)="(.*?)"(?:.*>>)/igo) { $stringa .= "$1 " if($1); }

---- snip ---

das Resultat ist zwar das gleiche, die Verarbeitungszeit ging jedoch beim Schleifendurchlauf
über ca. 500 HTMLs drastisch in die Höhe..

Kann mir irgendjemand einen Tipp zur 2ten while Schleife geben?
Falls nicht, ist's zwar auch nicht schlimm, ich kann ja weiter die 1ste verwenden, aber
vielleicht habe ich ja als Perl-Laie was übersehen/nicht verstanden.

Viele Grüße  Günter