2014-11-21 3 views
-1

Я хочу найти и заменить подстроку в строке на C#. подстрока я хочу найти, выглядит следующим образом: ],\" и подстрока я хочу, чтобы заменить внешний вид, как этот ],\"NameString escaping

Это то, что я пытался до сих пор:

string find = @"],\"""; 
string replace = @"],\""Name"; 
string newjson = jsonstring.Replace(find, replace); 
+1

Итак, почему, по вашему мнению, это не сработало? –

+1

Просьба уточнить. Какая строка ввода? Что в итоге? Пожалуйста, разместите пример _complete_, сжатый код, который воспроизводит проблему. См. Http://stackoverflow.com/help/mcve –

+0

нет компиляции Visual Studio. Пока нет синтаксической ошибки –

ответ

3

Ваш комментарий

Отладчик показать мне вот так "],\\\"Name"

Это правильный вывод, отладчик показывает вам экранированную версию вашей строки. \\ превращается в один \, а \" включается в " после того, как было выполнено экранирование.

Если вы нажмете увеличительное стекло в окне вашего отладчика, он откроет новое окно с нанесенным экранированием.

enter image description here

+0

@PeterDuniho на самом деле у меня было 3, переполнение стека ускользнуло от моего текста! пришлось обернуть его backticks, чтобы получить 3-е сообщение. –

+0

Всегда хорошая идея, чтобы дважды проверить отображаемый вывод при публикации. :) –

0

Вы получаете какую-либо ошибку, когда делать то, что вы сделали?

В противном случае попробуйте без использования буквальным "@"

так что-то вроде этого:

string find = "],\\\"";

string replace = "],\\\"Name";

string newjson = jsonstring.Replace(find, replace);

Когда-нибудь двойные кавычки и строковые литералы все еще дают мне проблемы, поэтому я делаю это так, не используя litera л. Надеюсь, это поможет.