RegEx для соответствия предыдущих версий 1.11.14 - PullRequest
2 голосов
/ 17 мая 2019

Какое выражение регулярного выражения я использовал бы, чтобы проверить, если версия меньше 1.11.14

Версия, подобная 1.9.15, 1.11.12, должна дать сбой, и версии, подобные 1.11.15 и выше, должны пройти.

Я пытаюсь сделать что-то подобное 1\.(11$\.13$|14$|15$), но, очевидно, это не сработает.

Если есть и более эффективный способ, я открыт для этого.

1 Ответ

2 голосов
/ 17 мая 2019

Как вы сказали, у вас нет другого пути, кроме как использовать регулярное выражение, тогда вы можете использовать это регулярное выражение, которое будет соответствовать любой версии, меньшей 1.11.14

^(?:0\.\d+\.\d+|1\.(?:\d|10)\.\d+|1\.11\.(?:\d|1[0-3]))$

Пояснение:

  • ^ - начало строки
  • (?: - Чередование начинается для разных случаев
  • 0\.\d+\.\d+ - Если первая цифра равна нулю, то она совпадает независимо от того, какие цифры присутствуют позже.
  • | - чередование
  • 1\.(?:\d|10)\.\d+ - Если первая цифра 1, а вторая версия версии меньше 11, тогда третья цифра может быть любой
  • | - чередование
  • 1\.11\.(?:\d|1[0-3]) - Если первая цифра 1, а вторая цифра 11, тогда третья цифра может быть только от 1 до 13
  • )$ - конец группы без захвата и конец строки

Regex Demo

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