Как сопоставить с регулярным выражением, если число в массиве находится в диапазоне? - PullRequest
1 голос
/ 28 марта 2019

Мне нужно проверить с помощью выражения регулярного выражения, находится ли вторая часть записи в диапазоне.Запись будет, например: «25-2000».Так что первое число и дефис не важны.

Я взял вторую часть записи с выражением:

[^-]*$

И я хочу оценить, находится ли число в диапазоне 1700-2100 с выражением:

(^(1[7-9][0-9][0-9]|20[0-9][0-9]|2100)$)

Я пытался объединить оба выражения в скобках, но это не работает:

([^-]*$)(^(1[7-9][0-9][0-9]|20[0-9][0-9]|2100)$)

Ответы [ 2 ]

0 голосов
/ 28 марта 2019

Вы можете использовать этот шаблон:

-(?:1[789]\d\d|20\d\d|2100)$

Если оно совпадает с чем-либо, число находится в диапазоне 1700-2100.

На самом деле вам не нужно комбинировать эти два шаблона, и вам не следует комбинировать шаблоны вслепую, просто добавив скобки.

Демо

0 голосов
/ 28 марта 2019

Поставьте - перед шаблоном, который соответствует номеру:

-((?:1[7-9]|20)\d\d|2100)$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...