C#で以下の文字列を置き換える方法
現在
"John K "GEN" Greg"
ゴール
"John K \"GEN\" Greg"
これは正しくエスケープしていないので間違っています:
s = s.Replace(""","\"");
引用符をスラッシュに置き換える構文を教えてください。
何かあれば教えてください。
ありがとうございます。
s = s.Replace("\"", "\\\"");
または
s = s.Replace(@"""", @"\""");
最初の例では、"
をバックスラッシュでエスケープしなければ文字列が終わってしまう。同様に、置換文字列では、"
をバックスラッシュでエスケープする必要がある。
番目の例では、逐語的な文字列リテラルを使用しており、@"..."
と記述している。これらのリテラルではエスケープシーケンスは認識されないので、バックスラッシュをたくさん含む文字列を(正規表現などの)よりすっきりした方法で書くことができます。そこで唯一機能するエスケープシーケンスは、単一の "
に対する ""
です。
string MailFrom ="[email protected];\"PROMMS\" [email protected];";
string NewMailFrom = Regex.Replace(MailFrom, "\"[^\"]*\"", string.Empty);
Results
[email protected];[email protected];