To match string 8 char, which can only contain numbers and an optional comma between them, you can use
^(?=.{8}$)\d+,?\d+$
regex
, 8 . ,? , + \d 1 .
8 ,
^(?:(?=.{9}$)\d+,\d+|\d{8})$
regex
, 9 ( ) 8 - .
:
^ -(?:(?=.{9}$)\d+,\d+|\d{8}) - 2 :(?=.{9}$)\d+,\d+ - 1 + , 1 , 1 + , 9 char long (8 1 )| -\d{8} - 8
$ -
Java code demo ( , String#matches(), ^ $ , ):
List<String> strs = Arrays.asList("0123,,678", "0123456",
"01234,567", "01234567"
);
for (String str : strs)
System.out.println(str.matches("(?:(?=.{9}$)\\d+,\\d+|\\d{8})"));
/:
+ ( 1 ) * ( 0 ) , :
^(?:(?=.{9}$)\d*,\d*|\d{8})$
- regex