private void parseMainContent() { //[\\w\\s-_|^[]+]] Regex t = new Regex("(\\[\\[[^\\[]+\\]\\])|('''[\\w\\s,\\.]+''')", RegexOptions.IgnoreCase); List <string> used = new List <string>(); MainContent = MainContent.Replace("'", ""); MainContent = HttpUtility.HtmlEncode(MainContent); MainContent = MainContent.Replace("&quot;", "\'"); MainContent = MainContent.Replace("&nbsp;", ""); MainContent = MainContent.Replace("&ndash;", "-"); MainContent = MainContent.Replace(""", "\'"); MainContent = MainContent.Replace(" ", ""); MainContent = MainContent.Replace("–", "-"); //MainContent = HttpUtility.HtmlDecode(MainContent); try { Regex regex = new Regex(@"(<[^<]+>)|({{[^{]+}})|(<!--[^<]+-->)"); while (regex.IsMatch(MainContent)) { MainContent = regex.Replace(MainContent, ""); } } catch (ArgumentException ex) { // Syntax error in the regular expression } foreach (var s in t.Matches(MainContent)) { bool doReplace = true; foreach (var b in used) { if (b.Equals(s.ToString())) { doReplace = false; } } if (doReplace) { used.Add(s.ToString()); string ss = s.ToString(); string[] split = ss.Substring(2, ss.Length - 4).Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries); if (split.Length == 1) { MainContent = MainContent.Replace(s.ToString(), "<Run FontWeight=\"Bold\" Text=\"" + split[0] + "\"/>"); } else { MainContent = MainContent.Replace(s.ToString(), "<Run FontWeight=\"Bold\" Text=\"" + split[1] + "\"/>"); } } } // Build text with highlights string textBlockStr = "<TextBlock xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" FontSize=\"25\" TextWrapping=\"Wrap\" VerticalAlignment=\"Top\">"; textBlockStr += MainContent; textBlockStr += "</TextBlock>"; // textBlockStr = textBlockStr.Replace(" ", ""); MainContent = textBlockStr; }