1

システム メッセージには、次のステータス センテンスが含まれる場合があります。

この関数は312回実行され、最も頻繁にプロセスUrbanusによって使用されました: 16.06.2012 14:10

文は常に 1 行です。

する必要がある:

  1. 3 つの太字部分を取得します。
    • 1 から n までの整数 (ここでは 312)
    • 文字、記号 (空白を含むが改行を除く) および数字 (ここでは: Urbanus) で構成される文字列
    • 「今日」または「昨日」の日付、または DD.MM.YYYY の日付 (ここでは 16.06.2012)
    • 24 時間 hh:mm 形式の時刻 (ここでは 14:10)
  2. システム メッセージから文全体を削除します。

次のことを試しましたが、うまくいきません。

$matches = preg_replace(
"/This function was executed ([1-9]|[1-9][0-9]|[1-9][0-9][0-9]) times, most often used by process (.+?): ((Today|Yesterday|[0-9]{2}.[0-9]{2}.[0-9]{4}) ([0-9]{2}:[0-9]{2}))./iU", 
"", 
$message);
4

1 に答える 1

1

1部:

使用してみてくださいpreg_match_all。また、私はあなたのパターンを改善します

$message = 'This function was executed 312 times, most often used by process Urbanus: 16.06.2012 14:10.';

$matches = array();
if (preg_match_all("/This function was executed ([1-9]|[1-9][0-9]+) times, most often used by process (\w+?): ((Today|Yesterday|[0-9]{2}.[0-9]{2}.[0-9]{4}) ([0-9]{2}:[0-9]{2}))./i", $message, $matches)) {
    var_dump($matches);
}
于 2012-11-23T12:50:52.987 に答える