用于匹配 IP 地址的正则表达式 [已关闭]
2022-08-30 11:17:44
我是正则表达式的新手,我想使用函数来查找字符串是否是IP地址。preg_match
例如
$string = "10.0.0.1";
preg_match($regex, $string);
应返回 true。那么,应该是什么呢?$regex
我是正则表达式的新手,我想使用函数来查找字符串是否是IP地址。preg_match
例如
$string = "10.0.0.1";
preg_match($regex, $string);
应返回 true。那么,应该是什么呢?$regex
当您不需要正则表达式时,不要使用正则表达式:)
$valid = filter_var($string, FILTER_VALIDATE_IP);
虽然如果你真的想要一个正则表达式...
$valid = preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\z/', $string);
但是,正则表达式将仅验证格式,任何八位字节的最大值是无符号字节的最大值,或 .255
这就是为什么IPv6是必要的 - IPv4地址只有32位长,互联网很受欢迎:)
/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/
应该为您的示例执行操作(它确实包含一个不是IP地址的字符串)。当然,它只是一个IPv4地址。