У меня есть следующее регулярное выражение, которое я использую для сопоставления / проверки десятичных чисел:
String[] inputs = {
"0",
"0.0",
"0.1",
"-0.1",
"-0.123",
"-123.123",
};
final String REG_PATTERN_VALID_DECIMAL_NUMBER = "((?<!\\S)\\d+(?:\\.\\d+)?(?!\\S))|.";
for (String input : inputs) {
boolean validInput = input.matches(REG_PATTERN_VALID_DECIMAL_NUMBER);
System.out.println("input: " + input + " ; isValid: " + validInput);
}
Вывод:
input: 0 ; isValid: true
input: 0.0 ; isValid: true
input: 0.1 ; isValid: true
input: -0.1 ; isValid: false
input: -0.123 ; isValid: false
input: -123.123 ; isValid: false
Таким образом, все положительные числа проходят, кроме отрицательных.Как я могу расширить свое регулярное выражение, чтобы принять также отрицательное число, например.принять первый символ "-"?