我有一个包含日期、IP 地址等的大字符串。我需要用日期拆分内容并使用
[0-9]+[/.-])([0-9]+[/.-][0-9]+
但它也使用 IP 地址进行拆分。日期和 IP 地址之间的唯一区别是日期有 3 个数字,而 Ip 有 4 个数字,例如 28.06.2012 和 178.15.16.314。如何在拆分内容时省略 IP 地址?
对不起。还有一件事我忘了补充。也就是说,日期格式还有其他可能性,例如 25-06-12、2012-06-25、12-06-25。
我有一个包含日期、IP 地址等的大字符串。我需要用日期拆分内容并使用
[0-9]+[/.-])([0-9]+[/.-][0-9]+
但它也使用 IP 地址进行拆分。日期和 IP 地址之间的唯一区别是日期有 3 个数字,而 Ip 有 4 个数字,例如 28.06.2012 和 178.15.16.314。如何在拆分内容时省略 IP 地址?
对不起。还有一件事我忘了补充。也就是说,日期格式还有其他可能性,例如 25-06-12、2012-06-25、12-06-25。
日期和 IP 地址之间的唯一区别是日期有 3 个数字,而 Ip 有 4 个数字,例如 28.06.2012 和 178.15.16.314。如何在拆分内容时省略 IP 地址?
首先,日期有四个数字代表年份。其次,IP 地址有四个八位字节。所以下面应该做的伎俩(未经测试):
'~(\d{1,2}[.-]\d{1,2}[.-]\d{4})~'
测试:
<?php
$date = '28.12.2012';
$ip = '192.168.0.1';
$regex = '~(\d{1,2}[.-]\d{1,2}[.-]\d{4})~';
var_dump( preg_match( $regex, $date ) ); // int(1)
var_dump( preg_match( $regex, $ip ) ); // int(0)