以下のデータがログファイルにあります。 "Process Started"と "Process Completed"の2つのフレーズの間にある行を抽出します。ライン。C#の2つの文字列の間の行を抽出する正規表現
2016-11-28 12:18:59.5286 | 14 | Info | Process Started -ABC *****
....
..
2016-11-28 12:18:59.5286 | 14 | Info | Process Completed -ABC, Status: Failed***
2016-11-28 13:18:59.5286 | 14 | Info | Process Started -DEF
....
..
2016-11-28 13:18:59.5286 | 14 | Info | Process Completed -DEF Status: Passed***
以下のRegExを使用していますが、特定の一致の行の先頭と末尾が抜けています。正規表現の上
Regex r = new Regex("^*?Process Started -"+process.Name+"(.*?)Process Completed: "+process.Name+".*?", RegexOptions.Singleline);
この
Process Started -ABC *****
....
..
2016-11-28 12:18:59.5286 | 14 | Info | Process Completed
のように戻っしかし、私はあなたがMultiline
オプションを使用する必要があるだろうと、あなたががこのような何かを行うことができ、この
2016-11-28 12:18:59.5286 | 14 | Info | Process Started -ABC *****
....
..
2016-11-28 12:18:59.5286 | 14 | Info | Process Completed -ABC, Status: Failed***
私は個人的にはこの場合正規表現を使用しません。私は行ごとに読んで、その行に「Process Started」と「Process name」が含まれているかどうかを評価します。そうであれば、 "Process Completed"と "Process name"が入っている行が表示されるまで、リストに行を追加します。 –
@ blaze_125、もし私がこのオプションだけを残してしまう解決策が見つからなければ。私はRegExがもっと簡単で簡単だと思った。 – raj