Почему экранированная точка Regex в Java не соответствует строке ввода - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь проверить, соответствует ли строка регулярному выражению значения типа double в Java.

Я хочу понять, почему следующая инструкция выводит «false».

System.out.println("1.".matches("1\\."));

А почему это печатает "ложь"

System.out.println("1.2".matches("[1-9][0-9]*(\\.[0-9]*)?"));

И почему это печатает "правда"

System.out.println("1.2a".matches("-?\\d+(\\.\\d+)?"));

1 Ответ

1 голос
/ 31 мая 2019

Double \ экранирует символ точки для аргумента регулярного выражения метода matches

System.out.println("1.".matches("1\\."));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...