using System; using System.Linq; using System.Text.RegularExpressions; public class Test { public static void Main() { var s = "'\" value=\"'hi&stack'\"/>"; var rx = @"((?:<[a-zA-Z][\w:-]*|\G(?!\A))\s+[^\s=<]*=)(""[^""]*"")"; var clean = Regex.Replace(s, rx, m => string.Format("{0}{1}", m.Groups[1].Value, m.Groups[2].Value.Replace("&", "&").Replace("<", "<").Replace(">", ">")) ); Console.Write(clean); } }