Regex group string replace c# -


the target string "qwer on chat: qwer chat". want replace qwer .. etc encoded text (md5) // have. don't want replace "on chat:" text encoding , while word "chat" encoded. expected result "{md5}{md5}{md5}{md5} on chat: {md5}{md5}{md5}{md5} {md5}{md5}{md5}{md5}". how can in c#? thanks.

    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);     } 

no regex needed, can use string.split , string.join:

    string s = "qwer on chat: qwer chat";     var parts = s.split(new string[] {"on chat:"}, stringsplitoptions.removeemptyentries);     (int = 0; < parts.length; i++) {         // md5 encode each part here replacing value in array     }     var final = string.join("on chat:", parts); 

if absolutely must use regex, like:

    var r = new regex(@"^(.*)(on chat:)(.*)$");     var n = r.replace(s, m=> md5(m.groups[1].value) + m.groups[2].value + md5(m.groups[3].value)); 

where md5 function takes string , returns md5 encoded string.


Comments

Popular posts from this blog

javascript - RequestAnimationFrame not working when exiting fullscreen switching space on Safari -

jsf - How to ajax update an item in the footer of a PrimeFaces dataTable? -

django - CSRF verification failed. Request aborted. CSRF cookie not set -