ログファイルの最終行をリアルタイムで監視しているスクリプトがあります。次の行が表示されます。私は第2セットの括弧内のデータを抽出したいと思います。私の元のコードは正常に動作し、問題はログの出力が変更されたことです。サンプルログ出力:私は最初の質問のライン#1の行が見つかった行であることを確認し、可能ならば、第二括弧の中のテキストを抽出する必要がRegexを使用してデータを抽出する際の解析の問題
2016-04-28 16:54:49 INFO [ADMINCGI sid=1] Title updated [Peezy - Dope Fein Baby (Feat. TID Sweeze & H.N.I.C Pesh)]
2016-04-28 16:54:49 INFO [ADMINCGI sid=1] DJ name updated [1]
。
私はこれを使用していますが、それは#2行を返して
マイコード:メインラインは、その正規表現よりも、デバッグにはるかに簡単であるため、
$line ="2016-04-27 22:56:48 INFO [ADMINCGI sid=1] Title updated [Tessa Feat. Gucci Mane - Get You Right]";
echo $line;
$pattern="/\[([^\]]*)\]/";
$needle = " Title updated ";
if (strpos($line,$needle) !== false) {
preg_match_all($pattern, $line, $matches);
foreach ($matches[1] as $a){
// echo $a."</br>";
// echo $matches[1][1];
$fulltitle = explode("-", $matches[1][1]);
$artist = $fulltitle[0];
$title = $fulltitle[1];
echo $artist;
エントリに直接アクセスすると、なぜ配列を反復処理しますか?おそらく、多くのオンライン正規表現テスターがあなたのパターンをテストするのに役立つように、詳細についてはあまり気にしません。例:http://www.regexr.com/ – SmasherHell
各行を個別にテストする場合は、 '' preg_match_all( '〜\ [([^] [] *)]'、$ input、$ m)を試してみてください。 $ my_val = $ m [1] [1]; '](http://ideone.com/jAwAKe) –
@ BuzzzHost.com:フィードバックはありますか?あなたの提案はありますか? –