Expressao regular nao funciona

4 respostas
M

E ae pessoal blz? Estou tendo problema com expressoes regulares…ja debuguei o codigo linha a linha e ele nao entra no if mesmo a condicao sendo verdadeira…

if (Pattern.matches("P*", "Palavra")) {
      completion.addElement("Palavra");
}

Fiz algo errado?

4 Respostas

rafadelnero

Utilize o ‘.’ depois do P!

if (Pattern.matches("P.*", "Palavra")) { System.out.println("LOL"); }

di.magdaleno

moskaBR:
E ae pessoal blz? Estou tendo problema com expressoes regulares…ja debuguei o codigo linha a linha e ele nao entra no if mesmo a condicao sendo verdadeira…

if (Pattern.matches("P*", "Palavra")) {
      completion.addElement("Palavra");
}

Fiz algo errado?


Da forma como está fazendo o método só vai retornar true se sua entrada for zero ou mais 'P’s, por exemplo, as seguintes expressões retornariam true: Pattern.matches("P*", "P"); // Um P Pattern.matches("P*", "PPPP"); // Vários Ps Pattern.matches("P*", ""); // Nenhum P
Se quiser que a expressão retorne true quando exista um P seguido de qualquer outro caractere deve fazer como sugerido pelo rafadelnero: Pattern.matches("P.*", "Palavra"); // Um P seguido de qualquer sequência de caracteres

thiago_pco

Pq não usar o startsWith?

if ("Palavra".startsWith("P")) {
      completion.addElement("Palavra");
}
M

Funcionou perfeitamente…esqueci deste detalhe, adicionando o ponto foi certinho…valew

Criado 6 de maio de 2013
Ultima resposta 6 de mai. de 2013
Respostas 4
Participantes 4