Hi Thomas,

a few comments on your code.

On Monday 10 May 2010 13:45:53 Thomas Bätzler wrote:
> Finalfire <blog.h...@gmail.com> asked:
> > Hello guys! I'm skilling regex using Perl and i've some trouble about
> > a simple try:
> > i've a string like:
> > 
> > $string = "HELLOOOOAAABBCCCC";
> > 
> > and i want to manipulate in that way: HELL4O3ABB4C;You can simply
> > notice that when i have 3 or more occurrences of a character, i want
> > to substitute all the occurrences and write "nC" where n is how times
> > the character C is found on a string.
> > 
> > So, in regex (i think there are so many way to do it but i wish to do
> > with regex, just skilling...) i write:
> > 
> > $string =~ s/(.)\1\1+/$1/;
> > 
> > but how can i get the number of the occurrences in the string of that
> > pattern?
> 
> #!/usr/bin/perl -w
>

use warnings is preferable to the -w flag.
 
> use strict;
> 
> my $string = "HELLOOOOAAABBCCCC";
> 
> print "$string\n";
> 
> $string =~ s/(.)\1{2,}/length($&).$1/eg;

Please don't use $& as it slows down all subsequent regular expression matches 
considerably. See the warning about it on perldoc perlvar. Instead wrap up the 
entire match in an extra parentheses, like Shawn and I demonstrated.

In any case, you get bonus points for writing a working program.

Regards,

        Shlomi Fish

> 
> print "$string\n";
> 
> __END__
> 
> HTH,
> Thomas

-- 
-----------------------------------------------------------------
Shlomi Fish       http://www.shlomifish.org/
What Makes Software Apps High Quality -  http://shlom.in/sw-quality

God considered inflicting XSLT as the tenth plague of Egypt, but then
decided against it because he thought it would be too evil.

Please reply to list if it's a mailing list post - http://shlom.in/reply .

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to