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>", " 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(" i>", 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("< /I>", endTag);
- text = text.Replace(" I>", endTag);
- text = text.Replace("< /I >", endTag);
- text = text.Replace("", endTag);
- text = text.Replace(" I >", 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(" _@_", "_@_");