2017-02-03 6 views
0

うまくいけば、ここで助けを見つけることができます。なぜなら正規表現についての手掛かりは本当にないからです。このサンプルから開始したmonaco editorでログファイルビューアを作成しようとしていますが、logstringsを複数行にすることができ、別のdateformatを使用したいと考えています。だから私はこのようなlogstringを持っていると仮定すると:正規表現を使ってlogstringを一致させる

[2017-02-03 22:07:56] [info] [Memory] After GC, total memory:737mb, used: 268mb, reclaimed: 293 
[2017-02-03 22:10:15] [info] [Memory] After GC, total memory:705mb, used: 247mb, reclaimed: 141 
[2017-02-03 22:10:25] [info] [Memory] After GC, total memory:705mb, used: 258mb, reclaimed: 21 
[2017-02-03 22:14:34] [warn] [Evaluator] org.mozilla.javascript.EcmaError: Cannot convert null to an object. 
    Caused by error in Business Rule: 'GlobalHideGlobalUsersFromNonAdmins' at line 5 

     2: 
     3: var encodedQueryString = 'sys_domain!=global'; 
     4:  
==> 5: var imp = gs.getImpersonatingUserName().toString(); 
     6: if(imp.length > 0) { 
     7:  encodedQueryString = encodedQueryString + '^ORuser_name=' + imp; 
     8: } 

[2017-02-03 22:14:34] [warn] [Evaluator] org.mozilla.javascript.EcmaError: Cannot convert null to an object. 
    Caused by error in Business Rule: 'GlobalHideGlobalUsersFromNonAdmins' at line 1 

==> 1: (function executeRule(current, previous /*null when async*/) { 
     2: 
     3: var encodedQueryString = 'sys_domain!=global'; 
     4:  

これは、現在、私のDATEFORMATと一致していないと、それは次のLogMessageにに一致しないキャリッジリターンがある場合にのみLogMessageにの最初の行と一致します。私を助けることができるRegexGuruはここにありますか? :)

monaco.languages.setMonarchTokensProvider('log', { 
    tokenizer: { 
    root: [ 
     [/\[error.*/, "custom-error"], 
     [/\[warn.*/, "custom-warn"], 
     [/\[info.*/, "custom-info"], 
     [/\[debug.*/, "custom-debug"], 
     [/\[[a-zA-Z 0-9:]+\]/, "custom-date"], 
    ] 
    } 
}); 

UPDATE:だからここ は私が作ってみたソリューションです。どうやら私はまだ複数の行を[DATE]文字列にマッチさせることができません。だから今のところ私はちょうど一致するでしょう。回避策として[エラー]。閉じ括弧のために「]」である必要があります - たぶん誰かが私はあなたがあなたのアップデートにおけるパターンの最後に脱出を逃すかもしれないと思う...右方向に

monaco.languages.setMonarchTokensProvider('log', { 
    tokenizer: { 
    root: [ 
     [/\[error\]/, "custom-error"], 
     [/\[warn\]/, "custom-warn"], 
     [/\[info\]/, "custom-info"], 
     [/\[debug\]/, "custom-debug"], 
     [/^\[\d{4}[./-]\d{2}[./-]\d{2} \d{2}[./:]\d{2}[./:]\d{2}]/, "custom-date"], 
    ] 
    } 
}); 

答えて

2

私をプッシュすることができます。

はここに抽出し、緊密なパターン何桁すべての共有のサブグループ:

\[(\d{2,4}[\:\-\s\]])+ 

あなたは「2 [DATE]文字列の間で複数行」の例でキャプチャしたいものの例を与えることができます?

希望すると便利です。

関連する問題