User since
2004-08-20
16
Artikel
BenutzerIn
Hallo
ich habe Schwierigkeiten beim filtern folgenden Beispielhafter Datei
------------------------------------------------------------
CN=Müller\, Lutz (3371),OU=12,OU=WIW-Users,DC=domain,DC=deCN=Hoffmann\, Andreas (3765),OU=12,OU=WIW-Users,DC=domain,DC=deCN=Ziebig\, Mirko (10871),OU=12,OU=WIW-Users,DC=domain,DC=deCN=Zasch\, Petra (8790),OU=12,OU=WIW-Users,DC=domain,DC=deCN=Woller\, Gunter (1525),OU=12,OU=WIW-Users,DC=domain,DC=de
------------------------------------------------------------
Hier bräuchte ein Array. In diesem sollen alle Ausdrücken stehen, die sich innerhalb der klammern befinden.
Vielen Dank für eure Hilfe
Torsten
User since
2005-06-01
469
Artikel
BenutzerIn
[quote=renee,19.09.2006, 14:00]Meinst Du so etwas:
my @parens = $string =~ /\(([^\)]+)/g;
print $_,"\n" for @parens;
[/quote]
muss die RegEx nicht
heißen (not greedy)?
Edit:
Nein, Denkfehler Schlechter Rotwein heute ... ;-)\n\n
<!--EDIT|FIFO|1158697681-->
Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? -- Brian Kernighan: "The Elements of Programming Style"
User since
2004-08-20
16
Artikel
BenutzerIn
Hallo,
leider hat die Antwort ein bisschen gedauert.
irgendwie bekomme ich bei der ausgabe.
mehrmals nur 4294967295 angezeigt, wo eigentlich der Ausdruck in den Klammern stehen sollte.
Bitte nochmals um Hilfe
Danke Torsten
User since
2003-08-04
14371
Artikel
ModeratorIn
Dann zeig mal Code, Beispieldaten und kopiere mal die Ausgabe hierhier...
User since
2004-08-20
16
Artikel
BenutzerIn
Hallo
ich habe den Code nochmals bissl angepasst
foreach (@parens)
{
if($_ = ~ /\(([^\)]+?)/g)
{
print $_;
print "\n";
}
}
Ausgabe beispielhaft:
4294967294
4294967294
4294967294
4294967294
4294967294
4294967294
4294967294
4294967294
4294967294
Variable @parens ist korrekt, wie bei meinem ersten Eintrag korrekt gefüllt
User since
2003-08-04
14371
Artikel
ModeratorIn
Wenn
@parens so Zeilen wie in Deinem Ausgangspost enthält, dann muss es so heißen:
for my $line(@parens){
my @values = $line = ~ /\(([^\)]+)/g);
print $_,"\n" for @values;
print "\n";
}