RegEx для диапазона процентов с 2 десятичными знаками - PullRequest
1 голос
/ 29 февраля 2020

Я хотел бы создать регулярное выражение, которое соответствует любому процентному показателю от 12,50% до 100,00%. Все проценты отображаются с двумя десятичными знаками и знаком% (без пробелов между числами и знаком%)

Совпадения:

12.50%
17.77%
71.01%

Не совпадают:

9.09%
10.00%
12.49%

Я нашел этот сайт: http://gamon.webfactional.com/regexnumericrangegenerator/

, который сгенерировал этот RegEx для целых чисел: (1 [2-9] | [2-9] [0-9 ] | 100)

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

Ответы [ 2 ]

1 голос
/ 01 марта 2020

Вы можете использовать чередование, используя свой шаблон, используйте только .00 для варианта 100% и иметь отдельное альтернативное совпадение с 12:50 до 12: 99

\b(?:12\.[5-9][0-9]|(?:1[3-9]|[2-9][0-9])\.[0-9]{2}|100\.00)%

Regex demo

0 голосов
/ 01 марта 2020

Это довольно сложная проблема для регулярных выражений и очень простая проблема для всего, что может анализировать числа в десятичные значения или значения с плавающей запятой и выполнять простые сравнения этих значений, например, awk:

/[0-9.]+%/ {
    if ($1 >= 12.5 || $1 <= 100.0) {
        print $1
    }
}

Итак, почему вы хотите использовать регулярное выражение?

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