Соответствующие числа регулярных выражений больше десятичного значения - PullRequest
0 голосов
/ 25 мая 2018

Регулярное выражение, которое я хочу написать, должно совпадать со всеми числовыми значениями, превышающими 0.01 и иметь максимум две цифры после десятичной точки.

Для сопоставления всех чисел с максимум двумя цифрами десятичной дробиукажите, что работает регулярное выражение "^\\d+(?:\\.\\d{1,2})?$".

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

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Чтобы сопоставить числовое значение, большее 0.01 с максимум двумя цифрами после десятичной точки, вы можете использовать отрицательный прогноз (?! в начале строки, чтобы утверждать, что один или несколько нулей с необязательной точкой . Обнуление части не происходит до конца строки или когда строка начинается с 0.01.

^(?!0+(?:\.0+)?$|0+\.01$)\d+(?:\.\d{1,2})?$

Это, например, также не будетсоответствует 0, 0.0, 0.00, 00000000000

Подробности

  • ^ Утверждение позиции в начале строки
  • (?! Отрицательный прогноз, который утверждает, что то, что справа, не является
    • 0+(?:\.0+)?$ Совпадение одного или нескольких нулей с необязательной частью, которая соответствует точке и одному или нескольким нулям, и утверждениеконец строки
    • | или
    • 0+\.01$ Совпадение одного или нескольких нулей с последующим 0,01 и утверждение конца строки
  • ) Закрыть негативный прогноз
  • \d+ Совпадение с одной или несколькими цифрами
  • (?:\.\d{1,2})?Необязательная часть, которая будет соответствовать точке, за которой следуют одна или две цифры
  • $ Утверждение позиции в конце строки
0 голосов
/ 25 мая 2018

Я не уверен, что это полностью отвечает вашим требованиям, я не смог прокомментировать, но я думаю, что вы можете отфильтровать нулевые матчи с помощью просмотра: (?!0+\.0+$)^\d+(?:\.\d{1,2})?$

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...