Expressão Regular [RESOLVIDO]

Bom dia pessoas,

Estou tentando criar uma expressão regular para validar uma entrada no sistema aqui, mas não to obtendo exito.
Seria para validar uma entrada em um form html, verificando se a String de entrada tem o formato de um double, aceitando valores como “10.1”, “10”, “10.10”, ou seja, um ou mais números, logo em seguida o ponto, e por fim um ou no máximo dois números.

Estou usando a seguinte expressão regular pra isso, mas a entrada “100.123123” é aceita (sendo que informo que só serão aceitos dois dígitos após o ponto).

[code]import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Teste {

public static void main(String[] args) {
	
	Pattern pattern = Pattern.compile("\\d{0,2}\\.\\d{1,2}");
	Matcher match = pattern.matcher("100.123123");
	
	if (match.find()) {
		System.out.println("Ok");
	} else {
		System.out.println("Erro");
	}
	
}

}
[/code]

Pelo que já estudei sobre expressões regulares, o ponto aceita qlq coisa, talvez seja esse o problema. Quem puder ajudar, eu agradeço mto.

Abraços.

O ponto nesse caso é um ponto literal, não é um curinga.

O que acontece é que você busca 2 números, um ponto e aí mais 2 números, e o texto enviado cai nesse padrão, veja:

1[color=red]00.12[/color]3123

Marquei em vermelho a parte que casa com sua regex. você teria que usar âncoras para funcionar melhor. Algo assim:

“^\d*(\.\d{1,2})?$”

Não testei isso, mas acho que é mais parecido com o que você quer.

Rodrigo Sasaki,

Funcionou perfeitamente! Muito obrigado!

Abraços.