遇到了个字符串替换的问题。
string test = @"如果不能输入中文,请切换到HTML视图,再切换(http://www.cnblogs.com/)到正常视图";
希望将字符串test替换成 "如果不能输入中文,请切换到HTML视图,再切换http://www.atm7.org/到正常视图";
替换其中的超链接;
我用如下方式尝试替换:
string temp = "(http://www.cnblogs.com/)";
test = Regex.Replace(test,temp,@"http://www.atm7.org/");
结果是:
"如果不能输入中文,请切换到HTML视图,再切换(http://www.atm7.org/)到正常视图",
括号没有被替换掉????????
尝试如下方法却替换成功:
test = test.Replace(temp, @"http://www.atm7.org/");
结果为:
"如果不能输入中文,请切换到HTML视图,再切换http://www.atm7.org/到正常视图"
替换成功。
想来想去,可能的原因就是()没有转义,Regex.Replace的操作才没有成功,只有这一种可能,大家注意吧。。。。。。。。。。
变量中可能含有需要转义的字符不要用Regex.Replace。
但是网址中的.也是要转义的。
string test = @"如果不能输入中文,请切换到HTML视图,再切换http://www.cnblogs.com/到正常视图";
这样用Regex.Replace替换是可以成功地。
我的结论:串里有括号的需要替换的时候一定要注意!!!!!!!!!!!!!!!!!!!!!!!!!!