Edumacation (I hope, anyway) by example :-)
#!/usr/bin/perl
use 5.016;
use warnings;
# 1060027
my $string = "aacbbbcac";
my $re1 = qr/((a+)?(b+)?(c))*/;
my $re2 = qr/(a.*?)(b.+?)(c)(.*)/; # ADDED ON SUSPICION THAT OP'S REG
+EX FU
# MIGHT BE INCREMENTED BY THIS EXA
+MPLE
if ($string =~ $re1) {
say "Here are the captures: $1, $2, $3)\n"; # ADDED line
foreach (0..$#-) {
printf "Group %d: <%s>\n", $_, substr($string, $-[$_], $+[$_] - $-
+[$_]);
}
}
say "\n";
if ( $string =~ $re2 ) {
say "USING \$re2, here are the captures \$1..\$4: $1, $2, $3, $4)\
+n";
foreach (0..$#-) {
printf "Group %d: <%s>\n", $_, substr($string, $-[$_], $+[$_] - $-
+[$_]);
}
}
=head #ONLY the "ADDED" lines are changed from OP's original
Here are the captures: ac, a, bbb)
Group 0: <aacbbbcac>
Group 1: <ac>
Group 2: <a>
Group 3: <bbb>
Group 4: <c>
USING $re2, here are the captures $1..$4: aac, bbb, c, ac)
Group 0: <aacbbbcac>
Group 1: <aac>
Group 2: <bbb>
Group 3: <c>
Group 4: <ac>
=cut
|