in reply to
Perl Pattern Matching & RegEx's
Why not split the string into chunks delimited by AAA, and then combine the chunks as you want and join them back?As in:
#!/usr/bin/perl -w
use strict;
my $string = shift || 'AAABCDAAADCBAAABBDAAA';
my @between = split /AAA/, $string, -1;
pop @between;
shift @between;
for (my $i = 0; $i<@between; $i++) {
for (my $j = $i; $j<@between; $j++) {
print join "AAA", "", @between[ $i .. $j ], "\n"
};
};
This won't solve the problem if your string contains AAAA, though.
UPDATE: This
substr-based solution is much better, it doesn't suffer from AAAA problem and probably uses less memory, too.