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

デバッガーで文字列を見ているのではないかと強く疑っています。そのため、バックスラッシュが 2 つ表示されています。

このバージョンはまったく問題ありません。

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("\'", @"\'");

あなたがやりたいことをする必要があります。デバッガーが二重の\文字があると言っているかもしれませんが、実際には1つしかありません。

編集:申し訳ありませんが、実際に"'"は最初の引数として使用する必要があります。

于 2012-11-26T16:36:04.847 に答える