Dúvidas com regex

Olá pessoal, esta é a minha primeira postagem, peço desculpas se for coisa básica.
Bom, estou tentando fazer uma validação, simples, de nome, com regex.
O metodo matches(), retorna um boolean.
Porém neste boolean eu só obtenho false.

Aqui vai o código:

[code]

public boolean setNome(String nome) {
Pattern validando = Pattern.compile("[^[:digit:]]");
Matcher casando = validando.matcher(nome);
boolean resultado = casando.matches();
if(resultado){
this.nome = nome;
}
return resultado;
}[/code]

Se alguém puder ajudar.

Valeu moçada!!

que tipo de validação para nome era pra dar true? ou seja, qual a validação para o nome ser válido?

Não entendi direito o que você quer, mas me parece que quer validar uma String que não contenha números. É isso?
O metacaractere \D significa “não dígito”.
A classe String possui um método chamado matches, ficando mais simples do que fazer a forma que você está fazendo.

Exemplos:// metacaractere \D. Note que há a necessidade de escapar a barra invertida. // '+' significa um ou mais. Se quiser zero ou mais, troque + por * System.out.println( "david buzatto".matches( "\D+" ) ); System.out.println( "árvore".matches( "\D+" ) ); System.out.println( "emergência 911".matches( "\D+" ) );
[]´s

rjbcordeiro, a validação é a que o amigo david disse. Pra não conter números.

Não sabia desse método da classe String.

Então desta maneira não é necessário o uso do regex, correto?

abraços…

Claro que é necessário. O parâmetro passado ao método matches é uma expressão regular.

[]´s

tenta isto aqui:


//ou assim
Pattern validando = Pattern.compile("[^0-9]*");

//ou assim
 Pattern validando = Pattern.compile("[\D]*");