在这个变量中,我想在每个'。
之前添加一些\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>
有什么想法吗?
谢谢!
答案 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("\'", @"\'");
应该做你想做的事。也许调试器告诉你有双\字符,但实际上只有一个。
编辑:抱歉,实际上它应该是"'"
作为第一个参数。