我需要验证格式为000000000到255255255的IP范围,而3组数字之间没有任何分隔符。 最终IP所包含的三个组中的每一个都应该是000(是,0填充)到255。
由于这是我的第一个stackoverflow条目,如果我没有正确遵循礼仪,请宽容。
答案 0 :(得分:8)
^([01]\d{2}|2[0-4]\d|25[0-5]){3}$
以下部分分类:
如果您决定需要4个八位字节而不是3个八位字节,只需将最后一个{3}
更改为{4}
即可。此外,您也应该了解IPv6。
答案 1 :(得分:5)
我个人不会使用正则表达式。我认为更容易确保字符串由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}
要求匹配三次。
答案 2 :(得分:1)
这是一个非常常见的问题。 Here是关于regexp的一个很好的介绍页面,以这种情况为例。它包括句号,但你可以很容易地编辑它们。
答案 3 :(得分:0)
仅用于匹配有效的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
答案 4 :(得分:0)
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
我使用此RegEx在我的项目代码中搜索所有ip