如果数组中的数字在范围内,如何与正则表达式匹配?

时间:2019-03-28 10:40:10

标签: regex

我需要使用正则表达式来检查条目的第二部分是否在范围内。该条目将是例如:“ 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 :(得分:0)

在与数字匹配的模式之前放置-

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

答案 1 :(得分:0)

您可以使用以下模式:

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

如果匹配,则该数字在1700-2100范围内。

您实际上并不需要合并这两种模式,也不要仅仅通过添加括号就盲目地合并模式。

Demo