@CityzenUNDEAD

Почему не срабатывает регулярное выражение?

День добрый!
Пишу парсер на С# который должен принять и обработать json. В получаемом json очень много встречается символов escape-последовательностей юникода, вроде \\u0420\\u043e\\u0441.
Как я понял, главное заменить 2 слеша на 1, и тогда получится получить нужный текст.
Пробую это делать через регулярные выражения.

string test = "\u0022\\u0420\\u043e\\u0441\\u0441\\u0438\\u044f\u0022";
string check = Regex.Replace(test, @"\\", @"\");

Console.WriteLine(check);

Итог, в консоль все равно выводятся символы юникода. Как можно исправить?
  • Вопрос задан
  • 84 просмотра
Пригласить эксперта
Ответы на вопрос 2
Zoominger
@Zoominger
System Integrator
Попробуйте так:
Regex  rx = new Regex( @"\\[uU]([0-9A-F]{4})" );
result = rx.Replace( result, match => ((char) Int32.Parse(match.Value.Substring(2), NumberStyles.HexNumber)).ToString() );

Источник: https://stackoverflow.com/questions/183907/how-do-...
Ответ написан
sotvm
@sotvm
Умный поймёт, а дураку и так всё равно.
думаю дело в кавычках
кавычки " не равны ' или `
возьми в одинарные
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы