Regex 用于IP验证的正则表达式,范围为?
我需要一个验证IP地址的正则表达式模式。这对谷歌来说很容易,但我认为有一个小问题。我需要最后的数字才能接受范围。因此,以下输入将进行验证 三十、 XXX.XXX.X-Y 比如168.68.2.1-34Regex 用于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地址的模式,但没有找到处理范围的模式。那么,它只是:
(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