私のコードは、ログ ファイルのいくつかの行を解析しています。
私はこれで多くのことを行いますが、特定の部分文字列を含まない行を見つけることができるという特定の必要性が生じました. ある条件下で
私は正規表現についてかなりよく理解しています。しかし、私はこれを理解できないようです。
error問題:またはという単語を含まない行をキャプチャしたいwarn。ログ エントリの最初の部分であり、角かっこで囲まれている場合を除きます。
これまでのところ、私は次のようなことを試しました:
(((?:abc|cba)\s+.*(?!\[?(?!error|warn)\]?).*)|((abc|cba)\s+\[(error|warn)\]\s+(.*)))
ログの行は、次の例のようになります。
キャプチャ グループ 2 :
abc [error] message
cba [error] message
cba [warn] message
キャプチャ グループ 1 :
abc something random
cba i dont know
キャプチャしない:
abc some [error] message
cba some [warn] message
簡単な英語の問題。abcまたはで始まる任意の行を取得したいcba。キャプチャ グループ 1 は、行が含まれていない場合、または行のどこにもない場合、その行を取得する必要があり[error]ます[warn]。およびキャプチャ グループ 2 は、[error]または[warn]がエントリの最初の部分 (abcまたはの後cba)である場合にのみ取得する必要があります。