Estoy tratando de usar expresiones regulares para reducir cadenas de caracteres repetidos. Por ejemplo, estoy tratando de convertir:Regex demasiado codicioso
Yaaaaaaaaay -> yaaay
jajajajajaja -> jajaja
toptoptoptop -> toptoptop
Por lo tanto, si veo una secuencia de caracteres repetido 3 o más veces, reemplácelo con una secuencia de longitud 3. Aquí está el problema que estoy teniendo. Consideremos la cadena
"hahahahahaha"
y utilizar el patrón de expresión:
(.+)\1{2,}
El partido termina siendo haha
. He jugueteado con tratar de hacer coincidir solo la "ha", pero no puedo entenderlo. También quiero la solución extensible a palabras como yaaaaaay si es posible. Cualquier ayuda será apreciada.
partidos
Buen trabajo; solución muy elegante –
Ok ... wow gracias ... Probé (. +)? \ 1 {2,} pero necesitaba el signo de interrogación en el interior. Perdón por la pregunta n00b –