【发布时间】:2014-02-05 22:18:41
【问题描述】:
有人对我的 IPv4 正则表达式有任何建议吗?这并不能完全验证 IPv4 地址。
IPV4="^(|[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})\|"
1.1.1.1 没问题,但 999.1.1.1 也验证:(
感谢您的意见
* 更新 *
根据 DopeGhoti 的输入,这是我目前所处的位置。我遇到了将其添加到我更大的正则表达式中的问题。我将这个正则表达式设置为一个变量,然后将它与另一个 IPv6 表达式结合起来。我在正则表达式中添加了一些东西。例如(| 在此处插入 DopeGhoti 正则表达式)。这也允许我接受一个空的 IPv4 地址。我还添加了一个 \|最后,因为一个大正则表达式检查的两个地址是 |分隔。
IPV4="^(|(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)))\|"
REGEX="$IPV4$IPV6"
这个过程适用于我更简单的 IPv4 正则表达式。新正则表达式中的某些内容正在破坏它。
* 更新 *
好吧,很奇怪。我用rubular测试了以下内容:
http://rubular.com/r/c6J3sESDyN
^(|(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)))\|$
这似乎有效。也许我还有另一个内部问题。现在检查。
【问题讨论】:
-
250.1.1.1 是有效的 IP 地址。
-
对不起,输入错误的例子。