いくつかのエスケープされた文字列で一致比較を行っています:
Regex.IsMatch("\\Application.evtx", "DebugLogs\\ConfigurationServices.log");
なぜ私が得ているのかわかりません:
「「DebugLogs\ConfigurationServices.log」を解析中 - 認識できないエスケープ シーケンス \C。」
は\C
エスケープされていますか?
\
文字は文字列のエスケープ文字です。たとえば、キャリッジ リターンを実行する場合は、 を使用します\r
。これを回避するには、リテラル文字列を使用します
@"\Application.evtx"
またはエスケープ文字をエスケープする
"\\Application.evtx"
あなたはおそらくしたいです
Regex.IsMatch(@"\Application.evtx", @"DebugLogs\ConfigurationServices.log");
"@" がない場合、C# は \n を改行文字に変換するのと同様に \C をエスケープ シーケンスとして扱いますが、\C は認識された有効なエスケープ シーケンスではありません。