Muszę wielokrotnie zmieniać string i teraz mam taki kod:
string str = "........";
Regex exp;
exp = new Regex(@"\[b\](.+?)\[/b\]");
str = exp.Replace(str, "<strong>$1</strong>");
exp = new Regex(@"\[i\](.+?)\[/i\]");
str = exp.Replace(str, "<em>$1</em>");
exp = new Regex(@"\[u\](.+?)\[/u\]");
str = exp.Replace(str, "<u>$1</u>");
............
Jednak może wydajniejszym sposobem zamiast ciągłego nadpisywania zmiennej str byłoby stworzenie dwóch StringBuilderów: text i text2, wyczyszczenie text2, zastosowanie do text wyrażenia regularnego, dodanie zawartości text do text2, wyczyszczenie text, dodanie do text zawartości text2 - bo prostszego sposobu chyba nie ma?:
StringBuilder text = new StringBuilder();
StringBuilder text2 = new StringBuilder();
text.Append(".....");
Regex exp;
exp = new Regex(@"\[b\](.+?)\[/b\]");
text2.Clear();
text2.Append(exp.Replace(text.ToString(), "<strong>$1</strong>"));
text.Clear();
text.Append(text2);
exp = new Regex(@"\[i\](.+?)\[/i\]");
text2.Clear();
text2.Append(exp.Replace(text.ToString(), "<em>$1</em>"));
text.Clear();
text.Append(text2);
..............
Który z tych sposobów jest lepszy, a może jeszcze jakiś inny sposób byłby lepszy?