Двойная строка цитаты заменяется на С#
Как заменить строку ниже на С#
Ток:
"John K "GEN" Greg"
Цель:
"John K \"GEN\" Greg"
Это неправильно, потому что я не избегаю этого:
s = s.Replace(""","\"");
Что такое синтаксис для замены кавычек с помощью \(slash)?
Любая помощь будет оценена.
Спасибо
Ответы
Ответ 1
s = s.Replace("\"", "\\\"");
или
s = s.Replace(@"""", @"\""");
В первом примере "
должен быть экранирован с обратным слэшем, поскольку в противном случае он завершил бы строку. Точно так же в заменяющей строке \\
необходимо дать один обратный слэш, экранируя escape-символ.
Во втором примере используются строковые литералы, написанные как @"..."
. В этих литералах никакие escape-последовательности не распознаются, что позволяет вам писать строки, которые содержат много обратных косых черт более чистым способом (например, регулярные выражения). Единственная управляющая последовательность, которая работает там, составляет ""
для одного "
.
Ответ 2
Вы должны использовать двойную обратную косую черту:
s = s.Replace("\"", "\\\"");
Ответ 3
Чтобы удалить ВСЕ цитаты из строки, попробуйте:
field.Value = Regex.Replace(field.Value, @ "[\" "]", "", RegexOptions.None);
Какая боль пытается найти этот ответ в Интернете!
Ответ 4
s = s.Replace("\"","\\\"");
Для чего вы его избегаете? Если вы собираетесь вставить его в БД, вместо этого используйте подготовленные заявления. Если вы собираетесь использовать его в своем HTML-выпуске, подумайте об использовании некоторого механизма шаблонов, который сделает это для вас непосредственно.
Ответ 5
Попробуйте: var result = yourString.Replace("\"", "\\\"");
Ответ 6
string MailFrom ="[email protected];\"PROMMS\" [email protected];";
string NewMailFrom = Regex.Replace(MailFrom, "\"[^\"]*\"", string.Empty);
Results
[email protected];[email protected];