<?
/*
25[0-5] => 250-255
2[0-4]/d => 200-249
10/d =>100-109
1[1-9]?/d =>110-199
[1-9]/d =>10-99
/d => 0-9
*/
//$num="(25[0-5]|2[0-4]/d|1[1-9]?/d|10/d|[1-9]/d|/d)";//这个不能正确匹配最后一段为101,不解中?
$num="(25[0-5]|2[0-4]/d|10/d|1[1-9]?/d|[1-9]/d|/d)";//这个却能正确匹配最后一段为101。??
$test="127.0.0.112 10.0.0.2 009.111.111.100 101.0.99.255 101.101.101.101";
preg_match_all("/$num//.$num//.$num//.$num/",$test,$match);
print_r($match);
?>
本文探讨了使用正则表达式匹配IP地址的技术细节,包括如何正确地定义每个部分的数字范围,以及如何处理边界情况,如以0开头的数字。通过两个不同版本的正则表达式对比,说明了特殊字符“?”的作用,并给出了一段PHP代码示例。
232

被折叠的 条评论
为什么被折叠?



