#!/usr/bin/perl
my $s = "fccccaaaaeaaaddaaaaabbcccaaacaaabbaaaa";
my $set = "[abcdefg]";
while ($s =~ /($set)/g) {
my $ch = $1;
$set =~ s/$ch//; # remove $ch from search set
printf "found %s at %d -> regex now: %s\n", $ch, pos($s), $set;
}
__END__
found f at 1 -> regex now: [abcdeg]
found c at 2 -> regex now: [abdeg]
found a at 6 -> regex now: [bdeg]
found e at 10 -> regex now: [bdg]
found d at 14 -> regex now: [bg]
found b at 21 -> regex now: [g]
Update: kennethk noted that you would run into complications with regex metacharacters with this simple approach (when using the full ASCII set) — which is of course correct... |