一开始,我以为在互联网上找到只匹配公共IPv4地址的正则表达式很容易。然而,经过大量的谷歌搜索后,我什么都没找到,所以我尝试编写正则表达式(Perl风格),如下所示:
[0-9]\.(?:[0-9]{1,3}\.){2}[0-9]{1,3}|
1[1-9]\.(?:[0-9]{1,3}\.){2}[0-9]{1,3}|
[2-9][0-9]\.(?:[0-9]{1,3}\.){2}[0-9]{1,3}|
1[0-6][0-9]\.(?:[0-9]{1,3}\.){2}[0-9]{1,3}|
17[0-1]\.(?:[0-9]{1,3}\.){2}[0-9]{1,3}|
172\.0\.(?:[0-9]{1,3}\.)[0-9]{1,3}|
172\.1[0-5]\.(?:[0-9]{1,3}\.)[0-9]{1,3}|
(172\.3[2-9]\.)(?:[0-9]{1,3}\.)[0-9]{1,3}|
(172\.[4-9][0-9]\.)(?:[0-9]{1,3}\.)[0-9]{1,3}|
...
正则表达式似乎不准确且效率低下,是否有更好的编写正则表达式的方法?
127\.\d{1,3}\.\d{1,3}\.\d{1,3}
并不是公共的!! - Abr001am