正则表达式〜将UNC转换为URL

Kev*_*eus 2 c# regex uri unc

我正在寻找一个很好的紧密正则表达式解决这个问题.我正在寻求将UNC重新格式化为Uri

问题:

需要将UNC目录重新格式化为Uri

\\服务器\ d $\X\Y\Z ^\AAA

需要看起来像:

HTTP://服务器/ Z/AAA

Jef*_*ang 6

在这种情况下,我认为替换比Regex更容易编写和理解.鉴于:

string input = "\\\\server\\d$\\x\\y\\z\\AAA";
Run Code Online (Sandbox Code Playgroud)

你可以做双重替换:

string output = String.Format("http:{0}", input.Replace("\\d$\\x\\y", String.Empty).Replace("\\", "/"));
Run Code Online (Sandbox Code Playgroud)


小智 5

.Net框架支持一个名为System.Uri的类,它可以进行转换.它更简单,处理逃逸案件.它处理UNC,Uri格式的本地路径.

C#:

Console.WriteLine((new System.Uri("C:\Temp\Test.xml")).AbsoluteUri);
Run Code Online (Sandbox Code Playgroud)

电源外壳:

(New-Object System.Uri 'C:\Temp\Test.xml').AbsoluteUri
Run Code Online (Sandbox Code Playgroud)

输出:

file:///C:/Temp/Test.xml
Run Code Online (Sandbox Code Playgroud)