1

我有一个包含日期、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。

4

1 回答 1

1

日期和 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)
于 2012-06-29T08:06:44.033 回答