使用正则表达式验证IP

cal*_*sto 4 regex

我需要验证格式为000000000到255255255的IP范围,而在3组数字之间没有任何分隔符.最终IP所包含的三个组中的每一个都应该是000(是,0填充)到255.

由于这是我的第一个stackoverflow条目,如果我没有正确遵循礼仪,请宽容.

Dav*_*ant 8

^([01]\d{2}|2[0-4]\d|25[0-5]){3}$
Run Code Online (Sandbox Code Playgroud)

其中包括以下几个部分:

  1. 000-199
  2. 200-249
  3. 250-255

如果您决定需要4个八位字节而不是3个八位字节,只需将最后一个更改{3}{4}.此外,您也应该了解IPv6.


Zac*_*ena 5

我个人不会使用正则表达式.我认为更容易确保字符串由9位数字组成,将字符串分成3组3位数字,然后检查每个数字是否在0到255之间(包括0和255).

如果你真的坚持正则表达式,那么你可以使用这样的东西:

"([0-1][0-9][0-9]|2[0-4][0-9]|25[0-5]){3}"
Run Code Online (Sandbox Code Playgroud)

该表达式包括三个术语的交替:第一个匹配000-199,第二个匹配,200-249第三个匹配250-255.该{3}要求严丝合缝的三倍.