Thread Frage zu Perlfaq6: "Can I use Perl regular expressions to match balanced text?" (7 answers)
Opened by Gast at 2009-10-14 09:36

Gast Gast
 2009-10-14 09:36
#126955 #126955
Hallo!

Zwei Fragen zu perlfaq6, "Can I use Perl regular expressions to match balanced text?".

Bei beiden Beispielen bekomme ich mit (wie es geschrieben steht) und ohne dem "possesive +" das gleiche ausgegeben.
Wird das possesive + gesetzt, damit es schneller geht?

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/perl
use strict;
use warnings;

my $string =<<"HERE";
I have some <brackets in <nested brackets> > 
and
<another group <nested once <nested twice> > >
and that's it.
HERE

my @groups = $string =~ m/(<(?:[^<>]++|(?1))*>)/g;

$" = "\n\t";
print "Found:\n\t@groups\n";


(?1): habe ich das richtig verstanden?

der erste Versuch kommt bis "I have some <brackets in "
auch wenn es keine Treffer war, kommt "brackets in " in den ersten capture puffer
da es kein Treffer war geht es weiter zum "oder"
mit dem "(?1)" wird jetzt nach "brackets in " gesucht und gefunden

//Modedit GwenDragon: Titel erweitert
Last edited: 2009-10-14 10:20:54 +0200 (CEST)

View full thread Frage zu Perlfaq6: "Can I use Perl regular expressions to match balanced text?"