В вашем регулярном выражении положительный взгляд (?=.*[1-9])
утверждает, что то, что находится справа, должно содержать цифру, которая будет успешной для всех примеров. После этого утверждения вы сопоставляете ноль или более цифр \d*
, за которыми следует часть, которая может совпадать с точкой, и 6 цифр (\.\d{6})?
, поэтому это будет соответствовать .588888
или 1
.
Если вы хотите сопоставить дополнительный знак минус, вы можете использовать -?
В качестве примера вы можете использовать:
^-?\d+\.\d{6}$
На Java:
String regex = "^-?\\d+\\.\\d{6}$";
Объяснение
^
Утверждение начала строки
-?
Соответствует дополнительному знаку минус
\d+\.\d{6}
Совпадение одной или нескольких цифр, точки и 6 цифр
$
Утверждение конца строки
Демо