2

いくつかのエスケープされた文字列で一致比較を行っています:

Regex.IsMatch("\\Application.evtx", "DebugLogs\\ConfigurationServices.log");

なぜ私が得ているのかわかりません:

「「DebugLogs\ConfigurationServices.log」を解析中 - 認識できないエスケープ シーケンス \C。」

\Cエスケープされていますか?

4

3 に答える 3

1

\文字は文字列のエスケープ文字です。たとえば、キャリッジ リターンを実行する場合は、 を使用します\r。これを回避するには、リテラル文字列を使用します

@"\Application.evtx"

またはエスケープ文字をエスケープする

"\\Application.evtx"
于 2012-05-02T22:07:51.347 に答える
-2

あなたはおそらくしたいです

Regex.IsMatch(@"\Application.evtx", @"DebugLogs\ConfigurationServices.log");

"@" がない場合、C# は \n を改行文字に変換するのと同様に \C をエスケープ シーケンスとして扱いますが、\C は認識された有効なエスケープ シーケンスではありません。

于 2012-05-02T22:08:26.977 に答える