Nochmal eine Korrektur... Am Mittwoch 15 Juni 2005 23:22 schrieb Ferdinand Ihringer:
Hallo,
Am Mittwoch 15 Juni 2005 07:47 schrieb David Haller:
Hallo, [...] BTW: ich habe nicht getestet, was passiert, wenn mehrere Elemente auf einer Zeile sind (also z.B. <foo class="bar"><baz class="fubar">).
Es würde wegen regexschen Gier nur das allerletzte genommen werden. So müsste es sich dann richtig verhalten:
my $newline = ''; while(/(.*?)<(\w+)(\s+[^>]+)?\s+id=["']?([^"\s]+)['"]?(\s+[^>]+)\s*>/g) { if($css{"$2#$4"}) { $newline .= "$1<$2$t style=" . $css{"$2#$4"} . " id=\"$4\" $5>"; } elsif ($css{"#$4"}) { $newline = "$1<$2$t style=" . $css{"#$4"} . " id=\"$4\" $5"; } else { print STDERR "Note: style for `$2' id=\"$4\" not found.\n"; } }
print $newline,"\n";
So wurde ich es um diese Uhrzeit machen. Wacher wahrscheinlich anders. ;-)
Gerade sehe ich, dass das mit der neuen Zeile eine schlechte Idee ist, wenn man auch noch class und nach Elementen ersetzen will... Mit einem einzigen Monster-Regex und der Methode würde es dann aber so gehen. Ferdinand