Estoy tratando de detectar si hay algún duplicadocaracteres en una cadena usando expresiones regulares. Cuando pruebo el patrón y la entrada en un probador de expresiones regulares en línea, dice que find () debe ser verdadero. Pero no funciona en mi programa. Estoy usando información de: expresiones regulares para hacer coincidir una palabra con caracteres únicos (no repetidos).
¿Qué está pasando? ¿Estoy usando expresiones regulares correctamente en Java?
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
Pattern pat = Pattern.compile("(.).*1");
String s = "1112";
Matcher m = pat.matcher(s);
if (m.find()) System.out.println("Matches");
else System.out.println("No Match");
}
}
Respuestas
1 para la respuesta № 1La referencia inversa debe ser escapada
Pattern pattern = Pattern.compile("(.).*\1");