2

この問題に対する適切な正規表現のソリューションを探しています。UNC を Uri に再フォーマットしようとしています

問題:

UNC ディレクトリは Uri に再フォーマットする必要があります

\\server\d$\x\y\z\AAA

次のようにする必要があります。

http://サーバー/z/AAA

4

4 に答える 4

6

この場合、replace は Regex よりも書きやすく、理解しやすいと思います。与えられた:

string input = "\\\\server\\d$\\x\\y\\z\\AAA";

二重置換を行うことができます:

string output = String.Format("http:{0}", input.Replace("\\d$\\x\\y", String.Empty).Replace("\\", "/"));
于 2009-06-27T18:33:31.157 に答える
5

.Net フレームワークは、変換を実行できるSystem.Uriというクラスをサポートしています。よりシンプルで、エスケープケースを処理します。Uri 形式への UNC とローカル パスの両方を処理します。

C#:

Console.WriteLine((new System.Uri("C:\Temp\Test.xml")).AbsoluteUri);

パワーシェル:

(New-Object System.Uri 'C:\Temp\Test.xml').AbsoluteUri

出力:

file:///C:/Temp/Test.xml
于 2013-03-22T10:56:46.900 に答える
1
^(\\\\\w+)\\.*(\\\w\\\w+)$
  • 最初の試合:\\server

  • 2 番目の一致:\z\AAA

文字列に連結してから、http:getの先頭に追加しますhttp:\\server\z\AAA。に置き換え\ます/

于 2009-06-27T18:07:01.700 に答える