Olá pessoal,
Estou com dúvidas com relação a esse código:
public class Tokenizacao2 {
static public void main(String java[]){
try{
Scanner s = new Scanner("xabxab0zzab112333333333");
String token;
do{
token = s.findInLine("ab[0-9]?+");
System.out.print(" " + token);
}while(token != null);
}catch(Exception ex){
ex.printStackTrace();
}
}
}
A saída do código acima é:
ab ab0 ab1 null
porém se eu alterar a expressão regular de “ab[0-9]?+” para “ab[0-9]+?” a saída muda para:
ab0 ab1 null
Se mudar para “ab[0-9]?” a saída fica:
ab ab0 ab1 null
Se mudar para “ab[0-9]+” a saída fica:
ab0 ab112333333333 null
Quando é usado apenas um quantificador, ? ou +, eu entendo o funcionamento. Porém quando são usados 2 quantificadores(como no livro que estou lendo) dai não entendo as saídas. Alguém poderia me explicar por favor como funciona esse negócio de usar ?+ ou +?.
Obrigado.