Java regex sur les doubles

Je suis en train de vérifier pour un double qui a un maximum de 13 chiffres avant la virgule et le point décimal et les numéros suivants sont facultatifs. Ainsi, l'utilisateur peut écrire un nombre entier ou un nombre avec des décimales.

Pour commencer, j'ai eu ceci:

if (check.matches("[0-9](.[0-9]*)?"))

J'ai été par le biais de plusieurs pages sur Google et n'ai pas eu de chance dans l'obtention de ce travail malgré les différents efforts. Mon idée était de faire comme ceci mais ça ne fonctionne pas:

[0-9]{1,13}(.[0-9]*)?

Comment puis-je le faire?

Pourquoi ne pas simplement analyser le double et vérifier value < 10000000000000?
\\. OU [.] Les deux œuvres, mais ne pas écrire juste '.'

OriginalL'auteur Duane | 2013-01-28