可能重复:
Regexp检查IP是否有效
我对正则表达式并不擅长并且我搜索了这个,但我能找到的只是匹配在数字前后有空格的IP地址,例如它只匹配这个:
Text before 192.168.1.1 Text after
Run Code Online (Sandbox Code Playgroud)
如何使其匹配任何IP地址,我不想要IP我只想知道文本是否有IP,例如我希望它也匹配:
text before192.168.1.1text after
Run Code Online (Sandbox Code Playgroud)
我试过这些:
\b(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\b
^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
Run Code Online (Sandbox Code Playgroud)
并提前感谢.
if (preg_match('/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/', $string, $match)) {
if (filter_var($match[0], FILTER_VALIDATE_IP)) {
// we have an IP
}
}
Run Code Online (Sandbox Code Playgroud)
是的,您可以构建一个直接匹配0-255的正则表达式以及IP必须遵循的所有其他规则,但这更加直截了当.