Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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 :)

Geschrieben

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

Geschrieben

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

Geschrieben

Da logischerweise im Gruppennamen keine ";" enthalten sein dürfen sollte das klappen:


while(<DATABASE>)

{

 my $matching = $1 if ( $_ =~ /^group=([^;]*)\;/i );

 print "$matching\n";

}

Geschrieben

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

Geschrieben

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...

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...