使用regex验证IP

使用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-

我需要验证格式为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-255

  • 如果您决定要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个?您能给我们一些输入字符串类型的示例吗?示例会有所帮助。顺便说一句,内括号是不必要的,因为串联比交替具有更高的优先级。