我使用php浏览日志文件,它看起来像这样:
11/06/05 09:17:59 TORMS068 11/06/05 09:17:59.234 TORMS068\Admin ... EPTH{2} ITEMIX{8} TELL{`` sdcsit49 - FileSystem /oracle/REF/sapdata2 Critical - MSGREC:1727:100 ``} USE{TELL} ATTACHMENT... xact{`NO`}
我使用Ellipses来展示还有很多其他东西
或者喜欢这个
11/06/05 11:29:38 TORM ... H{3} ITEMIX{5} TELL{``marble: initiator SCSI ID now 7 } File={ /var/adm/messages } - MsgRec 5174:406``} USE{TELL} ATTACHMENT{} UserParms{} AnswerWait{`10`} BaudRate{`1200`} C... eviceId{``} TellExact{`NO`}
接下来是 USE {TELL} 或 File = {。*} 我想为日志文件中的每一行提取TELL {}的{}中的内容。 请帮助我,我要疯了哈哈
由于
答案 0 :(得分:0)
if (preg_match("/USE\{(?<insideTheBrackets>[^\}]+)\}/", $line, $pat)) {
var_dump($pat['insideTheBrackets']);
}
答案 1 :(得分:0)
PHP的regular expression文档非常擅长解释这些内容......
<?php
$str = "11/06/05 11:29:38 TORM ... H{3} ITEMIX{5} TELL{``marble: initiator SCSI ID now 7 } File={ /var/adm/messages } - MsgRec 5174:406``} USE{TELL} ATTACHMENT{} UserParms{} AnswerWait{`10`} BaudRate{`1200`} C... eviceId{``} TellExact{`NO`}";
$pat = '/TELL{(``.*``)}/';
preg_match($pat,$str,$matches);
print_r($matches);
?>
答案 2 :(得分:0)
好吧,我无法获得可靠的工作方法,但我最终得到的是
if (preg_match("/(TELL{)(.*)} (USE{T)/iU ",$data,$matches))
$rowMsg=substr($matches[0],5,-7);
$rowMsg=preg_replace("/[}\. ]{1}\$/",'',$rowMsg);