Regex.Replace(myString, ".{2}", "\\x$0");
Если вы хотите пойти по маршруту без регулярных выражений, то может сработать следующее:
string s = "6b5737e5728786794fff5e009d74d70";
var sb = new StringBuilder($s.Length * 2);
for (int i = 0; i < s.Length; i+=2)
sb.Append("\\x").Append(s.Substring(i, [Math]::Min(2, s.Length - i)));
string myNewString = sb.ToString();
Если вы хотите, чтобы ваша строка содержала (для вашего примера) кодовые точки U + 006B, U + 0057, U + 0037 и т. Д. тогда подумайте еще раз, пожалуйста. Строки не являются байтовыми контейнерами, они текст контейнеры. Вы хотите byte[]
в этом случае:
byte[] byteArray = new byte[(s.Length + 1) / 2]
for (int i = 0; i < s.Length; i+=2)
byteArray[i/2] = Convert.ToByte(s.Substring(i, [Math]::Min(2, s.Length - i)));