Ao analisar uma String através de expressões regulares, é possível identificar quais grupos da regra não bateram? Abaixo um pequeno exemplo:
public static void main(String[] args) {
Pattern p = Pattern.compile("(.{3})\\t+(.{3})\\t+(.{3})");
String texto = "xxx\txxx\txxx"; //String correta
String texto2 = "xxx\txx\txxx"; //Erro no segundo grupo
Matcher m = p.matcher(texto);
if (m.matches()) {
System.out.println("OK");
} else {
System.out.println("Erro");
}
m = p.matcher(texto2);
if (m.matches()) {
System.out.println("OK");
} else {
System.out.println("Erro");
//CAPTURAR GRUPOS QUE NÃO BATERAM*
}
}
CAPTURAR GRUPOS QUE NÃO BATERAM
// Aqui eu gostaria de conseguir capturar que o
// “erro” foi ocasionado por conta do segundo campo não ter “batido”.
// Se for possível, posso capturar múltiplos erros? Imagina que
// tenho uma String com “xx\txx\txxx”
// onde o primeiro campo E o segundo não estão corretos, possuem
// somente dois caracteres ao invés de três
// Poderia ser capturada a informação de que os campos 1 e 2 não
// bateram?