Java - регулярное выражение для обычного положительного отрицательного числа

Я прочитал много вопросов о регулярных выражениях, но я еще не нашел это..

Я хочу, чтобы регулярное выражение в Java, чтобы проверить, является ли строка (без ограничения длины) число:

  • в том числе отрицательный (-4/-123)

  • в том числе 0

  • в том числе положительный (2/123)

  • исключая + (+4/+123)

  • исключая ведущий ноль 0 (05/000)

  • исключая . (0,5 / 0,4/1,0)

  • исключая -0

Это то, что я сделал до сих пор:

^(?-)[1-9]+[0-9]*

1 ответ

Решение

Это необязательный -

-?

Номер не должен начинаться с 0

[1-9]

за ним может следовать произвольное количество цифр

\d*

0 является исключением из правила "не начинается с 0", поэтому вы можете добавить 0 в качестве альтернативы.

Финальное регулярное выражение

-?[1-9]\d*|0

код Java

String input = ...

boolean number = input.matches("-?[1-9]\\d*|0");
Другие вопросы по тегам