Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]8344[/thread]

Filtern nach klammer-ausdrücken



<< >> 7 Einträge, 1 Seite
OnkelBlacky
 2006-09-19 15:47
#70025 #70025
User since
2004-08-20
16 Artikel
BenutzerIn
[default_avatar]
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
renee
 2006-09-19 16:00
#70026 #70026
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Meinst Du so etwas:
Code: (dl )
1
2
my @parens = $string =~ /\(([^\)]+)/g;
print $_,"\n" for @parens;
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
FIFO
 2006-09-20 00:26
#70027 #70027
User since
2005-06-01
469 Artikel
BenutzerIn

user image
[quote=renee,19.09.2006, 14:00]Meinst Du so etwas:
Code: (dl )
1
2
my @parens = $string =~ /\(([^\)]+)/g;
print $_,"\n" for @parens;
[/quote]
muss die RegEx nicht
Code: (dl )
 /\(([^\)]+?)/g

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"
OnkelBlacky
 2006-09-20 18:30
#70028 #70028
User since
2004-08-20
16 Artikel
BenutzerIn
[default_avatar]
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
renee
 2006-09-20 18:32
#70029 #70029
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Dann zeig mal Code, Beispieldaten und kopiere mal die Ausgabe hierhier...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
OnkelBlacky
 2006-09-20 18:41
#70030 #70030
User since
2004-08-20
16 Artikel
BenutzerIn
[default_avatar]
Hallo


ich habe den Code nochmals bissl angepasst

Code: (dl )
1
2
3
4
5
6
7
8
      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
renee
 2006-09-20 20:37
#70031 #70031
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn @parens so Zeilen wie in Deinem Ausgangspost enthält, dann muss es so heißen:

Code: (dl )
1
2
3
4
5
6
     
for my $line(@parens){
my @values = $line = ~ /\(([^\)]+)/g);
print $_,"\n" for @values;
print "\n";
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 7 Einträge, 1 Seite



View all threads created 2006-09-19 15:47.