7. Oktober 200421 j Hi, ich hab hier eine Datei mit 20000 Zeilen. Am Anfang einer Zeile stehen Sachen wie: forwarding oder group hier mal ein Auszug aus dem File group=administrator-role; descr=Administration; icon=ag_admin.gif;... ich hab nun mit folgendem Code alle Zeilen rausgesucht, die mit "group=" beginnen. #!/usr/bin/perl -w $basename = "sdb.db"; $i = 0; open (DATABASE, $basename) || die("Kann $basename nicht oeffnen!\n"); while(<DATABASE>) { $content = <DATABASE>; $i++; if ($content =~ /^group=/) { $matching = REGEX; print "$matching\n"; } } close (DATABASE); Diese Zeilen will ich jetzt mit einem weiteren Regex innerhalb des IF Blocks zerlegen, weil ich die Info brauche, wie die group heisst. D.h. für den Auszug oben wäre das gewünschte Ergebniss "administrator-role". Wie muss der Regex dafür heissen. Bin auf dem Thema leider nicht so bewandert hab schon mit split () rumgebastelt, bin aber nicht wirklich weit gekommen. Danke
7. Oktober 200421 j Hi, #... while(<DATABASE>) { my $matching = $1 if ( $_ =~ /^group=(.*)\;/i ); print "$matching\n"; } #... sollte tun. $1 ist ne Back-Reference auf das eingeklammerte in der Regexp. Sehr praktisch sowas . taschentoast
7. Oktober 200421 j danke, hab ich auch schon gehabt... leider sind im dem String mherere ";" habs etz auch geschafft, aber mit einer meiner meinung nach popel-lösung m/^group=(.+); desc/; Hab momentan n Problem mit UTF-8 von Perl. Hast da vielleicht auch eine Idee :bimei
7. Oktober 200421 j Da logischerweise im Gruppennamen keine ";" enthalten sein dürfen sollte das klappen: while(<DATABASE>) { my $matching = $1 if ( $_ =~ /^group=([^;]*)\;/i ); print "$matching\n"; }
7. Oktober 200421 j Hab momentan n Problem mit UTF-8 von Perl. Hast da vielleicht auch eine Idee :bimei Welches Problem? Perl kann ab 5.6.X recht gut mit Unicode umgehen. use utf8; # in Kombination mit einem UTF8 Editor dein bester Freund ansonsten: my $string = "a \x{2264} b"; # a kleinergleich b taschentoast
7. Oktober 200421 j Sorry, es lag bzw. liegt nicht am utf sondern an was anderem... befürchte die datei is schlampig PS: use utf8 <- soll auch helfen naja... trotzdem Danke für die Hilfe...
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.