Мне нужна ваша помощь, потому что у меня есть регулярное выражение для проверки того, какой тип числа с плавающей точкой получает, это потому, что десятичный разделитель может быть получен как .
или ,
. У меня нет способа форсировать один типразделителя так сильно, что я хочу проверить его с помощью regex
, и я не смог закончить его, я пытался несколькими способами, и мне не удалось получить ожидаемый результат, вы можете направить меня, пожалуйста.
Номера: 171
, 171.00
, 1770
, 1,700
, 1,700.00
, 1,777,777
, 1,777,777.00
,, 1777777.00
Обычная фраза
- Опция:
String patternString = "^[0-9]{0,3}+|(\\,[0-9]{0,3})+(\\.[0-9]{0,2})?$
- Опция:
String patternString = "^[0-9]{0,3}|(\\,[0-9]{0,3})(\\.[0-9]{0,2})?$";
- Опция:
String patternString = "^[0-9]+(\\,[0-9]{0,})+(\\.[0-9]{0,})?$ | ^[0-9]+(\\,[0-9]{0,})?$";
- Опция:
String patternString = "^[0-9]+(\\.[0-9]{0,})+(\\,[0-9]{0,})?$";
Ожидаемый результат:
Для этого случая я только оцениваю, где образецчисло равно #, ## 0.00
, для другого случая я бы полагал, что инвестировать будет ,
для .
Вариант 1:
1.71
- ОК 1.71717171
- Хорошо 171
- Хорошо 171.00
- Хорошо 1770
- Хорошо 1,700
- Хорошо 1,700.00
- ОК 1,777,777
- ОК 1,777,777.00
- ОК 1777777.00
- ОК
Вариант 2:
171,00
- ошибка (ложь) 1,700.00
- ошибка (ложь) 1,777,777
- ошибка (ложь) 1,777,777.00
- ошибка (ложь) 1777777,00
- ошибка (ложь) 1,00
- ошибка (ложь)