2016-12-13 1 views
2

Я прочитал много регулярных выражений вопрос, но я не нашел это еще ..Java - регулярное выражение для обычного положительного отрицательного числа

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

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

  • включая 0

  • включая положительные (2/123)

  • за исключением + (+ 4/+ 123)

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

  • за исключением . (0,5/1,0/.4)

  • за исключением -0

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

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

Пожалуйста, покажите нам, что вы получили до сих пор, и мы поможем вам в этом. – NPE

+0

Запросы кодов недействительны – Kiogara

+0

Спасибо! -^(? -) [1-9] + [0-9] * –

ответ

4

является необязательным -

-? 

Число не должно начинаться с 0

[1-9] 

это может сопровождаться arbitraty числом цифр

\d* 

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

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

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

ява код

String input = ... 

boolean number = input.matches("-?[1-9]\\d*|0"); 
+0

Для такого рода ответов стоило построить stackoverflow. Подробный, точный и демонстрирующий. Ты восхитителен!! –

+0

приятно ответил! – ryonts