C# 使用正则表达式匹配字符串中的多个字符
我有一个下面的路径,我需要转换为URLC# 使用正则表达式匹配字符串中的多个字符,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
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来确认任何特殊字符查看答案的更新->您可以使用类似的东西