使用regex验证IP
我需要验证格式为000000000到255255的IP范围,在3组数字之间没有任何分隔符。 最终IP包含的三个组中的每一组都应为000(是的,0填充)到255使用regex验证IP,regex,Regex,我需要验证格式为000000000到255255的IP范围,在3组数字之间没有任何分隔符。 最终IP包含的三个组中的每一组都应为000(是的,0填充)到255 由于这是我第一次进入stackoverflow,如果我没有正确遵守礼仪,请宽容。这是一个非常常见的问题。是一个很好的关于regexps的介绍页面,以这个案例为例。它包括句点,但您可以很容易地编辑掉这些句点 ^([01]\d{2}|2[0-4]\d|25[0-5]){3}$ 其细分为以下几个部分: 000-199 200-249 250-
由于这是我第一次进入stackoverflow,如果我没有正确遵守礼仪,请宽容。这是一个非常常见的问题。是一个很好的关于regexps的介绍页面,以这个案例为例。它包括句点,但您可以很容易地编辑掉这些句点
^([01]\d{2}|2[0-4]\d|25[0-5]){3}$
其细分为以下几个部分:
如果您决定要4个八位字节而不是3个,只需将最后一个
{3}
更改为{4}
。另外,您也应该了解IPv6。我个人不会为此使用regex。我认为更容易确保字符串由9位数字组成,将字符串分成3组3位数字,然后检查每个数字是否在0和255之间(包括0和255)
如果您真的坚持使用正则表达式,那么您可以使用如下内容:
"([0-1][0-9][0-9]|2[0-4][0-9]|25[0-5]){3}"
表达式由三个术语组成:第一个匹配
000-199
,第二个匹配200-249
,第三个匹配250-255
。{3}
需要精确匹配三次。对于独占匹配,请使用有效的IP地址
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}
而不是
([01]?[0-9][0-9]?|2[0-4][0-9]|25[0-5])(([01]?[0-9][0-9]?|2[0-4][0-9]|25[0-5])){3}
因为许多正则表达式引擎匹配OR序列中的第一种可能性
您可以使用:10.48.0.200试用您的正则表达式引擎
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
我使用这个正则表达式来搜索我项目中的所有ip代码您的ip地址只包含3个数字而不是4个?您能给我们一些输入字符串类型的示例吗?示例会有所帮助。顺便说一句,内括号是不必要的,因为串联比交替具有更高的优先级。