Ну, я получил этот маленький метод:Escaping х из строк
static string escapeString(string str) {
string s = str.Replace(@"\r", "\r").Replace(@"\n", "\n").Replace(@"\t", "\t");
Regex regex = new Regex(@"\\x(..)");
var matches = regex.Matches(s);
foreach (Match match in matches) {
s = s.Replace(match.Value, ((char)Convert.ToByte(match.Value.Replace(@"\x", ""), 16)).ToString());
}
return s;
}
Он заменяет "\ x65" из строки, которое я получил в аргументах [0].
Но моя проблема: «\\ x65» тоже будет заменена, поэтому я получаю «\ e». Я попытался выяснить регулярное выражение, которое проверит, есть ли еще одна обратная косая черта, но мне не повезло.
Может ли кто-нибудь дать подсказку?
Вы изобретаете [Regex.Unescape] (http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.unescape.aspx)? – dtb
Почему «\\ x65' не становится' \ e'? – bzlm
@bzlm: потому что первый \ ускользает второй \ – dtb