diff --git a/src/libse/Common/HtmlUtil.cs b/src/libse/Common/HtmlUtil.cs index 788319616..180a1f341 100644 --- a/src/libse/Common/HtmlUtil.cs +++ b/src/libse/Common/HtmlUtil.cs @@ -633,6 +633,14 @@ namespace Nikse.SubtitleEdit.Core.Common return false; } + + private static readonly string[] BeginTagVariations = { "< i >", "< i>", "", "< I >", "< I>", "", "" }; + + private static readonly string[] EndTagVariations = + { + "< / i >", "< /i>", "", "< /i >", "", "", + "< / i>", "", "< / I >", "< /I>", "", "< /I >", "", "", "< / I>", "" + }; public static string FixInvalidItalicTags(string input) { @@ -651,36 +659,15 @@ namespace Nikse.SubtitleEdit.Core.Common const string beginTag = ""; const string endTag = ""; + foreach (var beginTagVariation in BeginTagVariations) + { + text = text.Replace(beginTagVariation, beginTag); + } - text = text.Replace("< i >", beginTag); - text = text.Replace("< i>", beginTag); - text = text.Replace("", beginTag); - text = text.Replace("< I >", beginTag); - text = text.Replace("< I>", beginTag); - text = text.Replace("", beginTag); - text = text.Replace("", endTag); - text = text.Replace("< /i>", endTag); - text = text.Replace("", endTag); - text = text.Replace("< /i >", endTag); - text = text.Replace("", endTag); - text = text.Replace("", endTag); - text = text.Replace("< / i>", endTag); - text = text.Replace("", endTag); - text = text.Replace("< / I >", endTag); - text = text.Replace("< /I>", endTag); - text = text.Replace("", endTag); - text = text.Replace("< /I >", endTag); - text = text.Replace("", endTag); - text = text.Replace("", endTag); - text = text.Replace("< / I>", endTag); - text = text.Replace("", beginTag); - text = text.Replace("", endTag); + foreach (var endTagVariation in EndTagVariations) + { + text = text.Replace(endTagVariation, endTag); + } text = text.Replace(" ", "_@_"); text = text.Replace(" _@_", "_@_");