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/