我有以下段落
Dec 27 09:00:06 test event[1] number one
Dec 30 02:00:06 here is event[22] Feb 01 04:36:11 helloworld2
Dec 07 04:00:11 Now is event{3} Jan 01 04:36:11 Helloworld
Jan 02 23:00:11 helloworld evnt{45}
Feb 12 04:36:11 mesg10 Feb 13 04:36:11 mesg11 Feb 14 04:36:11 testmesg12
我想捕捉时间戳上发生的时间戳和消息
我使用pythex.org测试python正则表达式(?P \ w {3} \ s \ w {2} \ s \ w {2}:\ w {2}:\ w {2})\ b (ΔP。*)
但这仅适用于行分隔,并且在同一行上具有多个(1+)时间戳和消息的段落上失败。例如,在上面的段落中,我无法在Feb 12 04:36:11 mesg10 Feb 13 04:36:11 mesg11 Feb 14 04:36:11 testmesg12
答案 0 :(得分:1)
这是一个 foreach($array as $r){
if($_POST['reg_id']==$r['reg_id']) {
echo json_encode($r);die; // return the json of values
}
}
echo 0; die;
?>
Python解决方案,它使用2.x
在日志文件的每一行中查找多个匹配项:
findall
这里面临的挑战是制定一个有效的模式。我选择了匹配时间戳的路线,然后使用前瞻来知道何时停止匹配。当我们看到另一个时间戳时,我们会停止匹配,或者我们看到该行的结尾。请注意,匹配下一个时间戳在这里不起作用,因为我们需要将其作为下一个匹配的开始,因为正则表达式在整个线路上运行。
探索演示以查看代码的实际效果。