Just because it's Perl, you're not obligated to find a regular expression approach to every problem. If the regex solution is elusive, solve it in a way that is easy for any programmer to understand:
# In a world without regular expressions, # it's just a simple matter of programming: my $count = 0; my $pos = 0; while( $pos != length $string ) { $count++ if 'aa' eq substr $string, $pos++, 2 }
Then as you become more proficient with Perl idioms, and the Perl language's built-in functions, you might discover pos:
# Using 'pos()': while( $string =~ /aa/g ) { pos($string) = pos($string) - 1; $count++ }
Eventually with a little work and study (perlre, perlrequick, perlretut), you may arrive at a point where this idiom is within reach:
$count++ while $string =~ /a(?=a)/g; # Using a lookahead assertion.
But what's important with Perl is first learning how to get the job done, and then later layering in how to do it in a more Perlish way. Eventually you'll discover =()=, which can lead to this:
...and at that point you might back off and decide that's too idiomatic, which is also perfectly ok; nobody will mind. ;)my $c = () = $string =~ m/(?=aa)/g; say $c;
Dave
In reply to Re^5: Count of Repeated Characters
by davido
in thread Count of Repeated Characters
by santu4frnds
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |