2017-11-01 2 views
0

\\SnowAngel\IcedDataとしてデータベーステーブルに格納されている次のフォルダパス。ただし、データベースから読み取るときは、次のようになります。 string myFolderName = "\\\\SnowAngel\\IcedData";ここで、SnowAngelはサーバー名です。Regex.Unescape例外

Regex.Unescape(myFolderName);

上の行は、以下の例外がスロー:{ " - 認識できないエスケープシーケンス\ I" "解析\" \\ SnowAngel \ IcedD​​ata \}

ここで私は何が欠けているのですか?

+0

@Riv「\\\\ SnowAngel \\ IcedD​​ata」としてmyFolderNameが表示されます – Sami

+1

デバッグ中に表示されますか?もしあなたがそうであれば、それはVisual Studioが文字列を表示する方法です。それはあなたの文字列の実際の値に影響しないはずです – Riv

+0

@Revあなたは絶対に正しいです。私はメッセージボックスにそれを表示して、パスは正常に見えます。しかし、なぜVSがそれをこのように表示しているのですか?開発者を混乱させるには? :) – Sami

答えて

0

1つは2つのパーサーを処理する必要があります。最初はC#言語で、もう1つは正規表現パーサーです。 C#パーサーに話すために複数のスラッシュを追加しましたが、それは正規表現パーサーにとって混乱しています。

正規表現パターンを扱うときは、C#リテラル@を使用することをお勧めします。そうすれば、C#パーサーについて心配する必要はありません。それは、パターンのように見えませんが、単純に、

string myFolderName = @"\\SnowAngel\IcedData";

に変更し、正規表現でそれに取り組みます。

関連する問題