2017-06-13 10 views
1

次の文字列を次の式を使用して正規表現式に変換しようとするとエラーが発生します。ログテキストを正規表現に変換する

^([[^]]+]) ([[^]]+]) (-|[a-z,A-Z,\s,\W]*) 

2017年6月12日02:59:06.875 obcdjkauthoreduser [INFO]ユーザー= QA-エクセル、= ambariサーバ-devのユーザに試みるプリンシパル= [email protected] -excel for operation = getInfo from host = /00.000.00.00

+2

エラー、inexistant質問に答えることはできません。 – Aaron

+0

もっと真剣に、あなたの最初の2つのキャラクタークラスは外に見えます。 ']'以外のものとマッチさせようとするなら、 '[^]]'は動作するはずです。最初の '[']がリテラル文字として理解されるべきなら、それはエスケープされるべきです。 '\ [[^]] +]'は '[...]'で囲まれた非 ' - 'の空でない文字列を表します – Aaron

+0

'\ W'には' \ s'、 '、'はありません文字クラス内の特別な意味と ' - 'は、最後、最初、またはエスケープされることによって文字クラス内で表現できます。あなたが探していたのは、^(\ [[^]] +)(\ [[^]] +)([-a-zA-Z \ W] *) 'です。これは、まだあなたのログ形式と一致することからかなり離れていることに注意してください。 – Aaron

答えて

0

例のようなすべてのメッセージを見つける必要があると仮定します。 次の正規表現は、日付/時刻フィールド、ユーザーID、角括弧内のタイプ、およびライン何の残りの部分があることを検証します:あなたの投稿を読んだとき

^[\d -]+ [\d\:\.]+ [^\[]*\[[^\]]+\].*$ 
関連する問題