在C#中替换'with \'

时间:2012-11-26 16:31:20

标签: c#

在这个变量中,我想在每个'。

之前添加一些\
string html = 
    "<a href=\"annee-prochaine.html\">Calendrier de l'annee prochaine</a>"

html = html.Replace("'", "\'"); //No change
html = html.Replace("\'", "\'"); //No change

html = html.Replace("\'", "\\'");
//html => <a href=\"annee-prochaine.html\">Calendrier de l\\'annee prochaine</a>
html = html.Replace("\'", @"\'");
//html => <a href=\"annee-prochaine.html\">Calendrier de l\\'annee prochaine</a>

我想在替换之后得到它:

//html => <a href=\"annee-prochaine.html\">Calendrier de l\'annee prochaine</a>

有什么想法吗?

谢谢!

5 个答案:

答案 0 :(得分:8)

我强烈怀疑你正在查看调试器中的字符串,这就是你看到双倍反斜杠的原因。

这个版本绝对没问题:

html = html.Replace("\'", "\\'");

(使用逐字字符串文字的那个也可以。)而不是在调试器中查看它,记录它或者只是服务它,一切都应该没问题。

你看到双引号这一事实进一步证明了这一点。例如,这个字符串:

string html = "<a href=\"anne...";

... 包含反斜杠,但您的诊断显示它,这是我在调试器中所期望的。

答案 1 :(得分:7)

反斜杠字符是一个转义字符,因此您需要放置其中的两个字符,或使用忽略转义的@字符串修饰符。

html=html.Replace("'", "\\'"); // this should work
html=html.Replace("'", @"\'"); // or this

答案 2 :(得分:1)

 string html = "<a href=\"annee-prochaine.html\">Calendrier de l'annee prochaine</a>"

 html = html.Replace("'",@"\'");

答案 3 :(得分:1)

试试这个:

html=html.Replace("'", @"\'"); 

答案 4 :(得分:0)

这两行中的任何一行:

html=html.Replace("\'", "\\'");
html=html.Replace("\'", @"\'");

应该做你想做的事。也许调试器告诉你有双\字符,但实际上只有一个。

编辑:抱歉,实际上它应该是"'"作为第一个参数。