http://www.perlmonks.org?node_id=1022237


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.

Replies are listed 'Best First'.
Re^2: Perl Pattern Matching & RegEx's
by jaiieq (Novice) on Mar 07, 2013 at 14:23 UTC
    This looks to be exactly what I was looking for. I am going to try it on a few other test cases and see how it works. Thank you!