如何使用正则表达式查找文本是否具有IP地址?

Pie*_*rre 1 php regex

可能重复:
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)

并提前感谢.

dec*_*eze 5

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必须遵循的所有其他规则,但这更加直截了当.