Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: More efficient way to truncate long strings of the same character

by kvale (Monsignor)
on Oct 30, 2008 at 18:22 UTC ( #720534=note: print w/ replies, xml ) Need Help??


in reply to More efficient way to truncate long strings of the same character

% perl -e'$x="aaaaaabbcccccd"; $x=~s/(.)\1{2,}/$1$1$1/g; print "$x\n"; +' aaabbcccd

-Mark


Comment on Re: More efficient way to truncate long strings of the same character
Download Code
Re^2: More efficient way to truncate long strings of the same character
by JavaFan (Canon) on Oct 30, 2008 at 18:34 UTC
    That would do needless work if a character is repeated only twice. You only have to modify the string is a character appears four or more times in a row. So, my suggestion is:
    s/(.)\1{3,}/$1$1$1/g;
    And in 5.10, use of the \K operator may be faster (but I haven't checked it)
    s/(.)\1\1\K\1+//g;

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://720534]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (18)
As of 2015-07-01 15:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (6 votes), past polls