¿Cómo puedo encontrar caracteres repetidos con una expresión regular en Java?

¿Alguien puede darme una expresión regular de Java para identificar caracteres repetidos en una cadena? Solo busco personajes que se repiten de inmediato y pueden ser letras o dígitos.

Ejemplo:

abccde <- buscando esto (repitiendo c's de forma inmediata)

abcdce <- no esto (c separado por otro personaje)

Pruebe "(\\w)\\1+"

El \\w coincide con cualquier carácter de palabra (letra, dígito o guión bajo) y el \\1+ coincide con lo que haya en el primer conjunto de paréntesis, una o más veces. Así que terminas emparejando cualquier aparición de un personaje de palabra, seguido inmediatamente por uno o más caracteres de la misma palabra otra vez.

(Tenga en cuenta que le di la expresión regular como una cadena de Java, es decir, con las barras diagonales inversas ya duplicadas para usted)

 String stringToMatch = "abccdef"; Pattern p = Pattern.compile("(\\w)\\1+"); Matcher m = p.matcher(stringToMatch); if (m.find()) { System.out.println("Duplicate character " + m.group(1)); } 

Las expresiones regulares son caras. Probablemente sería mejor que guardes el último personaje y verifiques si el siguiente es el mismo. Algo como:

 String s; char c1, c2; c1 = s.charAt(0); for(int i=1;i