Como fazer uma expressão regular que aceite somente valores double? [RESOLVIDO]

3 respostas
A

Um valor double é aquele que aceita números [1-9] e um e apenas um ponto “.”

Como fazer esta expressão regular? Eu não quero usar máscara aqui, apenas aceitar números com apenas um ponto.

Muito obrigado desde já :smiley:

3 Respostas

P

[0-9]+.[0-9]+

D

Uma versão um pouco mais poderosa:

/* \\d corresponde a \d que significa dígito.
 * \\. corresponde a \. para dar escape ao ponto
 * * indica zero ou n vezes
 * + indica 1 ou n vezes
 * ? indica 0 ou 1 vez
 * ou seja, zero ou n dígitos, acompanhados ou não de ponto e 1 ou n dígitos.
 * cuidado, pq a expressão tbm aceita uma string vazia.
 */
String regExp = "\\d*(\\.\\d+)?";
System.out.println( Pattern.matches( regExp, "1" ) ); // true
System.out.println( Pattern.matches( regExp, "1." ) ); // false
System.out.println( Pattern.matches( regExp, ".7" ) ); // true
System.out.println( Pattern.matches( regExp, "1.7" ) ); //true

[] ´s

A

Muito obrigado davidbuzatto e pablosaraiva!

Criado 23 de dezembro de 2009
Ultima resposta 23 de dez. de 2009
Respostas 3
Participantes 3