うまくいけば、ここで助けを見つけることができます。なぜなら正規表現についての手掛かりは本当にないからです。このサンプルから開始した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"],
]
}
});