私は正しく解析しようとしています以下のログがあります。(正規表現)1つのイベントログに5つのフィールドがあり、もう一方のフィールドに6が含まれている場合は、角括弧で囲まれたすべてのデータをキャプチャするにはどうすればよいですか?
[groupA] [groupB] [groupC] [groupD] [groupE] messsage
[groupA] [groupB] [groupC] [groupD] [groupE] [groupF] messsage
イベントの一部が5つの括弧のフィールドと1つのメッセージを持っている、およびログの他のセットが6つの括弧のフィールドが含まれていると1をメッセージ。
角かっこ内の各フィールドをキャプチャ(および名前付け)するにはどうすればよいですか?私は最初のレイアウトをキャプチャし、次の正規表現を持っているし、私はOR行う(|)第2のレイアウトをキャプチャ:
\[(?<timestamp>\d{4}-\d{2}-\d{2}\s\d{2}\:\d{2}\:\d{2}\,\d{3})\]\s\[(?<A>.+?)\]\s\[(?<B>.+?)\]\s\[(?<C>.+?)\]\s\[(?<D>.+?)\]\s(?<message>.*)|\[(?<timestamp>\d{4}-\d{2}-\d{2}\s\d{2}\:\d{2}\:\d{2}\,\d{3})\]\s\[(?<A>.+?)\]\s\[(?<B>.+?)\]\s\[(?<C>.+?)\]\s\[(?<D>.+?)\]\s\[(?<E>.+?)\]\s(?<message>.*)
これは機能しました。どうもありがとうございました。私はオプションのグループを使ったことは一度もありません。 – user3002