Dear Monks,
I have a problem I am trying to solve with regular expressions. I want to return all locations of an array of patterns inside a string. I also only want the patterns to match at locations which are a multiple of 3. For example, so far I have the following.
my $string="AAABBBCCCCDDDEEEFFFGGGHHHIII"; my @patterns=('BBB','DDD'); my @index; foreach(@patterns){ while($string=~m/([A-Z]{3})+?$_/g){ push(@index,$-[2]); pos($string)=$-[2]; }
The problem with this is that it matches the first pattern correctly, but it will also match 'CCCDDD' in the second loop because I cannot/dont know how to anchor the pattern to start at a specific location.
To be clear, I only want the patterns in the array to match if there are a number of characters evenly divisible by three before it.
Is there a good way to do this?
ThanksIn reply to Perl Regex Repeating Patterns by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |