Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 用于IP验证的正则表达式,范围为?_Regex_Ip Address - Fatal编程技术网

Regex 用于IP验证的正则表达式,范围为?

Regex 用于IP验证的正则表达式,范围为?,regex,ip-address,Regex,Ip Address,我需要一个验证IP地址的正则表达式模式。这对谷歌来说很容易,但我认为有一个小问题。我需要最后的数字才能接受范围。因此,以下输入将进行验证 三十、 XXX.XXX.X-Y 比如168.68.2.1-34 我已经找到了正常IP地址的模式,但没有找到处理范围的模式。那么,它只是: (normal-ip-regex)-[0-9]+ 如果你需要比这更复杂的东西,那么我认为你最好的办法是实际解析出数字并以这种方式验证它们(例如,如果你真的想确保“X”小于“Y”,那么用正则表达式就没有办法做到这一点)。要接

我需要一个验证IP地址的正则表达式模式。这对谷歌来说很容易,但我认为有一个小问题。我需要最后的数字才能接受范围。因此,以下输入将进行验证

三十、 XXX.XXX.X-Y

比如168.68.2.1-34


我已经找到了正常IP地址的模式,但没有找到处理范围的模式。

那么,它只是:

(normal-ip-regex)-[0-9]+

如果你需要比这更复杂的东西,那么我认为你最好的办法是实际解析出数字并以这种方式验证它们(例如,如果你真的想确保“X”小于“Y”,那么用正则表达式就没有办法做到这一点)。

要接受介于0和255之间的数字,我会使用
(25[0-5]| 2[0-4]\d|[0-1]?\d{1,2}
。调用上面的表达式A,IP范围的正则表达式如下所示

A\.A\.A\.A-A

如果范围是可选的,请使用
(-A)?
而不是
-A

这不会检查范围的起始值是否小于结束值,但这无法在正则表达式中通过合理的努力来完成。

验证IP地址的“更好”方法是将其转换为整数。请记住,点表示法只是为了让人更容易阅读

我不知道您使用的是哪种语言,但大多数都有类似于
inet\u aton
函数的功能,可以将点表示法转换为整数(这将隐式检查格式是否正确)


一旦你把地址作为一个整数,你就可以检查它是否在你的有效范围内,就像检查任何其他整数一样(<和>,最有可能)。

呃..看起来我误解了这个问题,你实际上是想取一个范围,而不是对照一个范围进行检查。这可能没有多大帮助。这里有一个次要的(但重要的?)注意-如果
(普通ip正则表达式)
$
结尾,修改后的正则表达式将不匹配任何内容。范围是否有界?例如,
123.123.123-99999
可能无效,但将由您的正则表达式匹配。
(A\.){3}A-A