Целевая строка "qwer on chat: qwer chat"
. Я хочу заменить qwer .. etc
на кодированный текст (md5) //, который уже есть. Но я не хочу заменять "on chat:"
на текстовое кодирование, в то время как слово «chat» должно быть закодировано. Ожидаемый результат: "{md5}{md5}{md5}{md5} on chat: {md5}{md5}{md5}{md5} {md5}{md5}{md5}{md5}"
. Как это сделать на C#? Благодарю.Regex group string заменить C#
public static string GetUniqueKey(int maxSize)
{
char[] chars = new char[62];
chars =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890".ToCharArray();
byte[] data = new byte[1];
RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider();
crypto.GetNonZeroBytes(data);
data = new byte[maxSize];
crypto.GetNonZeroBytes(data);
StringBuilder result = new StringBuilder(maxSize);
foreach (byte b in data)
{
result.Append(chars[b % (chars.Length)]);
}
string l = result.ToString();
return "{"+l+"}";
}
static IDictionary<string, string> map = new Dictionary<string, string>()
{
{"q",GetUniqueKey(5)},
{"w",GetUniqueKey(5)},
{"e",GetUniqueKey(5)},
{"r",GetUniqueKey(5)},
{"a",GetUniqueKey(5)},
{"c",GetUniqueKey(5)},
{"h",GetUniqueKey(5)},
{"t",GetUniqueKey(5)},
{"o",GetUniqueKey(5)},
{"n",GetUniqueKey(5)},
};
public void ccc(string str)
{
var regex = new Regex(String.Join("|", map.Keys.Select(k => Regex.Escape(k))));
string newStr = regex.Replace(str ,m => map[m.Value]);
richTextBox1.AppendText(Environment.NewLine + newStr);
}
О, я уже видел этот вопрос раньше .. –
Итак, вы хотите md5 все в строке, которая не является буквальной строкой 'on chat:'? Это верно? –
Найдите минутку, чтобы прочитать [редактирование справки] (http://stackoverflow.com/editing-help) в справочном центре. Форматирование переполнения стека отличается от других сайтов. Чем лучше выглядит ваш пост, тем проще будет пользователям помочь вам. – gunr2171