我有以下字符串:aWesdE
,我要使用http://myserver.com/aWesdE.jpg
转换为Regex.Replace(string, string, string, RegexOptions)
目前,我使用此代码:
string input = "aWesdE";
string match = "(.*)";
string replacement = "http://myserver.com/$1.jpg";
string output = Regex.Replace(input, match, replacement,
RegexOptions.IgnoreCase | RegexOptions.Singleline);
结果是输出结果为:http://myserver.com/aWesdE.jpghttp://myserver.com/.jpg
因此,替换值正确显示,然后再次附加 - 非常奇怪。这里发生了什么?
答案 0 :(得分:6)
你的Regex实际上有两场比赛。你定义了这样的匹配:
string match = "(.*)";
这意味着匹配零个或多个字符,因此您有2个匹配项 - 空字符串和您的文本。为了解决这个问题,请将模式更改为
string match = "(.+)";
表示匹配一个或多个字符 - 在这种情况下,您只能获得一个匹配