regex - Javascript removes letters duplicates and sequence in string -


there many posts , have found few solutions there not perfect. 1 of them:

"aabbhahahahahahahahahahahasetsetset".replace(/[^\w\s]|(.+)\1+/gi, '$1') 

the results is:

abhahahahahahaset 

i want result:

abhaset 

how ?

.+ greedy. takes as can. half of has \1 can match second half. making repetition ungreedy should trick:

/[^\w\s]|(.+?)\1+/gi 

by way, i doesn't change here.

to rid of nested repetitions (e.g. transform aabbaabb ab (via aabb or abab)) run replacement multiple times until result not change more.

var pattern = /[^\w\s]|(.+?)\1+/g;  var output = "aabbaabb"; var input;  {     input = output;     output = input.replace(pattern, "$1"); } while (input != output) 

i admit naming of output bit awkward first repetition, know... 2 difficult problems in computer science cache invalidation, naming things , off-by-one errors.


Popular posts from this blog

How to calculate SNR of signals in MATLAB? -

c# - Attempting to upload to FTP: System.Net.WebException: System error -

ios - UISlider customization: how to properly add shadow to custom knob image -