0

次のようなログファイルを解析するための文法を書いています。

V9013_MURGIN_AE_7340057[01/10/2013 10:07:33]:DEBUG:<PCDATA>
V9013_MURGIN_AE_7340057[01/10/2013 10:07:33]:DEBUG:<PCDATA>
etc...

ここにPCDATAは任意の記号 (を含む) を含めることができ\n、'7340057' は PID (プロセス ID) です。

問題は、PCDATA?の終わりをどのように記述するかです。

これV9013_MURGIN_AE_7340057は PID であり、ログ ファイル間で変化するため、その値を文法にハードコードすることはできません。

このようなことをする方法はありますか:

  1. 初めて a 7340057(または現在のファイルにあるもの) に一致するときは、それをいくつかの var に入れます。$PID
  2. PCDATA貪欲でない-match (.)*until$PIDつまり、変数 (パラメータ化された) トークン定義を持つことは可能ですか?

前もって感謝します。

4

1 に答える 1

0

ANTLR を使用しないという提案に同意します。

それでも、私が以前にこの問題に (非常に非効率的に) 対処した方法は次のとおりです。

pcdata : (PID)=> () | . pcdata ;
于 2013-01-17T13:59:04.190 に答える