E ae galera blz?
Minha dúvida é com relação a esse código que aparece aqui em um livro para certificação que estou lendo:
public class Regex {
static public void main(String[] args){
Pattern p = Pattern.compile("[ar]*");
Matcher m = p.matcher("arara");
boolean b = false;
System.out.println("O padrão é: " + m.pattern());
while(b = m.find())
System.out.println(m.start() + " " + m.group());
}
}
a saída é:
O padrão é: [ar]*
0 arara
5
Eu entendi que [ar] é uma lista e que se eu não usar o * essa expressão casa com a letra "a" ou com a letra "r":
O padrão é: [ar]
0 a
1 r
2 a
3 r
4 a
mas não sei se entendi direito porque quando coloco o * a expressão casa com "arara". Tem a ver porque o * é guloso e vai casando com cada letra sem parar? Poderiam me esclarecer melhor essa questão?
Obrigado pessoal. =)