Подтвердить что ты не робот

Двойная строка цитаты заменяется на С#

Как заменить строку ниже на С#

Ток:

"John K "GEN" Greg"

Цель:

 "John K \"GEN\" Greg"

Это неправильно, потому что я не избегаю этого:

s = s.Replace(""","\"");

Что такое синтаксис для замены кавычек с помощью \(slash)?

Любая помощь будет оценена.

Спасибо

4b9b3361

Ответ 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("\"", "\\\"");