5

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

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>

我想在 Replace 之后得到它:

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

有任何想法吗 ?

谢谢!

4

5 回答 5

8

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

这个版本绝对没问题:

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

(使用逐字字符串文字也可以。)与其在调试器中查看它,不如记录它或只是提供它,一切都应该没问题。

您在双引号中也看到它的事实进一步证明了这一点。例如,这个字符串:

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

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

于 2012-11-26T16:34:31.983 回答
7

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

html=html.Replace("'", "\\'"); // this should work
html=html.Replace("'", @"\'"); // or this
于 2012-11-26T16:34:06.313 回答
1
 string html = "<a href=\"annee-prochaine.html\">Calendrier de l'annee prochaine</a>"

 html = html.Replace("'",@"\'");
于 2012-11-26T16:34:20.447 回答
1

试试这个:

html=html.Replace("'", @"\'"); 
于 2012-11-26T16:34:48.840 回答
0

这些行中的任何一个:

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

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

编辑:对不起,实际上它应该"'"作为第一个参数。

于 2012-11-26T16:36:04.847 回答