2016-08-02 3 views
0

Итак, я работаю с Java regexp, и у меня есть немного проблем, чтобы создать его. Я должен получить регулярное выражение, которое соответствует номерам между 0.0 и 359.9, всегда с точностью до одного десятичного знака, что не слишком сложно, но я делаю regexp для текстового поля, означающего, что если выражение не совпадает со всеми символами, я могу 't далее.Java regexp для сопоставления текстового поля

Это означает, что в основном 3 35 359 359. 359.9 все должны соответствовать мне, чтобы вводить поле.

Я пробовал вещи вокруг с \d(\.\d)?, но это не соответствует каждому шагу пути, и \d(\.)?(\d)? позволяет ему начинать с нуля. Я не могу понять, что я знаю о regexp, и я был бы признателен за любую помощь.

ответ

0

Попробуйте это:

^(?:3[0-5]\d|[12]\d{2}|\d{1,2})(?:\.\d?)?$ 

Демо: https://regex101.com/r/mW0lI5/3

+0

Это позволяет выражение начать с 0, но это достаточно хорошо для того, что я делаю, спасибо! –

+0

Я сделал это сознательно, считая, что это должно быть приемлемым. Но это можно легко устранить, изменив диапазон '[0-2]' на '[12]'. Изменен ответ. –

+0

'\ d {1,2}' будет по-прежнему соответствовать 01.0. И замена его на '[1-9] \ d' не работает. –

0

Попробуйте SimPE regex.It может работать, как вам требуется

^\d[0-5]?[0-9]?(\.)?([0-9])?$