在这个变量中,我想在每个'之前添加一些\.
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>
Run Code Online (Sandbox Code Playgroud)
我希望在替换之后得到它:
//html => <a href=\"annee-prochaine.html\">Calendrier de l\'annee prochaine</a>
Run Code Online (Sandbox Code Playgroud)
有任何想法吗 ?
谢谢!
我强烈怀疑你正在查看调试器中的字符串,这就是为什么你看到双倍的反斜杠.
这个版本绝对没问题:
html = html.Replace("\'", "\\'");
Run Code Online (Sandbox Code Playgroud)
(使用逐字字符串文字的那个也可以.)而不是在调试器中查看它,记录它或只是服务它,一切都应该没问题.
您正在看双引号这一事实进一步证明了这一点.例如,这个字符串:
string html = "<a href=\"anne...";
Run Code Online (Sandbox Code Playgroud)
......不不包含反斜杠,但你的诊断都出现了,这就是我在调试器的期望.
反斜杠字符是一个转义字符,因此您需要放置其中的两个,或使用忽略转义的@字符串修饰符.
html=html.Replace("'", "\\'"); // this should work
html=html.Replace("'", @"\'"); // or this
Run Code Online (Sandbox Code Playgroud)