C# 使用正则表达式匹配字符串中的多个字符

C# 使用正则表达式匹配字符串中的多个字符,c#,regex,string,C#,Regex,String,我有一个下面的路径,我需要转换为URL string path = @"\\TestServer\User_Attachments$\Data\Reference\Input\Test.png"; 我正在尝试替换字符串中的特殊字符。所以 \\将成为/,并在前端添加一个https,即https://` \将变成/ User\u Attachments$将成为User\u Attachments 最后一个字符串应该如下所示 string url = "https://TestServer/User

我有一个下面的路径,我需要转换为URL

string path = @"\\TestServer\User_Attachments$\Data\Reference\Input\Test.png";
我正在尝试替换字符串中的特殊字符。所以

  • \\将成为
    /
    ,并在前端添加一个
    https
    ,即
    https://`
  • \
    将变成
    /
  • User\u Attachments$
    将成为
    User\u Attachments
  • 最后一个字符串应该如下所示

    string url = "https://TestServer/User_Attachments/Data/Reference/Input/Test.png"
    
    为了实现这一点,我提出了以下
    regex

    string pattern = @"^(.{2})|(\\{1})|(\${1})";
    
    然后使用
    Matches()
    方法进行匹配,如下所示:

    var match = Regex.Matches(path, pattern);
    
    我的问题是,我如何检查匹配是否成功,并在相应的组中替换相应的值,并获得我上面提到的最终
    url
    字符串


    是指向正则表达式的链接吗?您可以这样做

    string path = @"\\TestServer\User_Attachments$\Data\Reference\Input\Test.png";
    
    string actualUrl=path.Replace("\\","https://").Replace("\","/")
    

    你可以这样做

    string path = @"\\TestServer\User_Attachments$\Data\Reference\Input\Test.png";
    
    string actualUrl=path.Replace("\\","https://").Replace("\","/")
    

    如上所述,我想用一个简单的
    替换

    string path = @"\\TestServer\User_Attachments$\Data\Reference\Input\Test.png";
    var url = path.Replace(@"\\", @"https://").Replace(@"\", @"/").Replace("$", string.Empty); 
    // note if you want to get rid of all special chars you would do the last bit differently
    
    例如,从以下其中一个答案中选择:

    //假设str包含具有特殊字符的数据
    char[]arr=str.ToCharArray();
    arr=Array.FindAll(arr,(c=>(char.isleterordigit(c)
    ||char.IsWhiteSpace(c)
    ||c=='-'
    ||c=='u');
    str=新字符串(arr);
    
    如上所述,我想用一个简单的
    替换:

    string path = @"\\TestServer\User_Attachments$\Data\Reference\Input\Test.png";
    var url = path.Replace(@"\\", @"https://").Replace(@"\", @"/").Replace("$", string.Empty); 
    // note if you want to get rid of all special chars you would do the last bit differently
    
    例如,从以下其中一个答案中选择:

    //假设str包含具有特殊字符的数据
    char[]arr=str.ToCharArray();
    arr=Array.FindAll(arr,(c=>(char.isleterordigit(c)
    ||char.IsWhiteSpace(c)
    ||c=='-'
    ||c=='u');
    str=新字符串(arr);
    
    为什么要使用正则表达式?一个简单的
    string.Replace()
    chained就足够了,并允许最终代码具有更高的可读性…@zaitsman我不必使用正则表达式,我只是不知道如何使用
    string.Replace()
    替换多个值,因此我选择了这条路线。如果您能提供一个示例,您是否可能?为什么要使用正则表达式?一个简单的
    string.Replace()
    chained就足够了,并允许最终代码具有更高的可读性…@zaitsman我不必使用正则表达式,我只是不知道如何使用
    string.Replace()
    替换多个值,因此我选择了这条路线。如果您能提供一个示例,您是否可能错过了
    $
    :)您错过了
    $
    :)您让它看起来很简单:/能否详细说明您的评论请确保URL已编码,并且您还应使用HttpServerUtility.UrlEncode确保任何特殊字符请查看答案的更新->您可以使用类似于您使其看起来如此简单的东西:/you can’您可以详细说明您的评论吗请您确认URL已编码,并且您还应该使用HttpServerUtility.UrlEncode来确认任何特殊字符查看答案的更新->您可以使用类似的东西