opa opa…galera é o seguinte, comecei a estudar os motores regex…
mas não estou conseguindo usar direito ou não estou sanbendo traduzir a API.
quero entender os seguintes patterns:
f??
f*?
Então montei o seguinte código:
public static void main(String[] args) {
String palavra = "Diferencaf";
Pattern p = Pattern.compile("[f??]");
Matcher m = p.matcher(palavra);
m.find();
while (m.find())
System.out.println("Encotramos :"+m.group() +" na posição : "+m.start());
}
Se a tradução estiver correta ele deveria trazer UM ou NENHUM em tudo. A minha palavra tem DUAS letras “f”…e ele imprime que achou ela duas vezes. Então eu troquei para o pattern seguinte f*? Segundo a tradução nenhuma ou mais vezes…mas o resultado é o mesmo…
Então fiquei na mesma qual é a diferença e a aplicação correta disso ???
Pelo meu pequeno conhecimento em regex, o que está acontecendo aí é que você está utilizando o [].
Se eu tiver uma expressão regular [abc], ele tentará casar qualquer o termo com os possíveis itens do conjunto, que neste caso é o a, b, c.
Acredito que a expressão regular está entendendo que você está procurando pelos literais f, * ou ?.