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

С# replace\"characters

Мне отправляется XML-строка, которую я пытаюсь разобрать с помощью XmlReader, и я пытаюсь удалить символы \".

Я пробовал

.Replace(@"\", "")
.Replace("\\''", "''")
.Replace("\\''", "\"")

плюс несколько других способов.

Любые идеи?

4b9b3361

Ответ 1

Вы пытались сделать это следующим образом:

string text = GetTextFromSomewhere();
text.Replace("\\", "");
text.Replace("\"", "");

? Если да, то проблема - Replace не изменяет исходную строку, она возвращает новую строку с выполненной заменой... так что вам нужно:

string text = GetTextFromSomewhere();
text = text.Replace("\\", "").Replace("\"", "");

Обратите внимание, что это заменит каждую обратную косую черту и каждый символ двойной кавычки; если вы только хотели заменить пару "обратная косая черта, за которой следует двойная кавычка", вы просто используете:

string text = GetTextFromSomewhere();
text = text.Replace("\\\"", "");

(Как упоминалось в комментариях, это связано с тем, что строки являются неизменными в .NET - как только у вас есть какой-либо строковый объект, эта строка всегда будет иметь одинаковое содержимое. Вы можете назначить ссылку на другую строку для переменная, конечно, но это фактически не изменяет содержимое существующей строки.)

Ответ 2

Попробуйте следующее:

Replace("\\\"","");

Это заменит вхождения \" пустой строкой.

Пример:

string t = "\\\"the dog is my friend\\\"";
t = t.Replace("\\\"","");

Это приведет к:

the dog is my friend

Ответ 3

В .NET Framework 4 и MVC это единственное представление, которое сработало:

Replace(@"""","")

Использование обратной косой черты в любой комбинации не работает...

Ответ 4

Заменить (@ "\" "," ")

Вам нужно использовать double-doublequotes для escape двойные кавычки в стенографической строке.

Ответ 5

Где эти символы появляются? Вы видите их, если вы изучаете данные XML, например, в блокноте? Или вы видите их при анализе данных XML в отладчике. Если это последний, они являются только escape-символами для символов " и поэтому являются частью фактических данных XML.

Ответ 6

\ => \\ and " => \"

so Replace("\\\"","")