有没有人对我的IPv4正则表达式有任何建议。这并未完全验证IPv4地址。bash中的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验证:(
感谢输入
* UPDATE *
基于DopeGhoti的输入,这里是哪里im到目前为止我遇到的问题添加到我的更大的正则表达式中我将这个正则表达式设置为一个变量,然后将它与另一个表达式结合起来用于IPv6,还有一些我添加到正则表达式。例如a(|在此插入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正则表达式。新正则表达式中的某些东西正在破坏它。
* UPDATE *
好奇怪的。我测试了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地址。 – DopeGhoti
对不起,输入错误的例子。 – Atomiklan