Advertisement
ivandrofly

SubtitleEdit: SplitStartTags

Dec 21st, 2024
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.42 KB | None | 0 0
  1. public static string SplitStartTags(string line, ref string pre)
  2.         {
  3.             var l = 0;
  4.             var len = line.Length;
  5.             // ssa tag
  6.             for (var r = l; r < len; r++)
  7.             {
  8.                 if (line[r] == '{' && r + 1 < len && line[r + 1] == '\\')
  9.                 {
  10.                     l = r;
  11.                 }
  12.                 else if (line[r] == '}' && line[l] == '{')
  13.                 {
  14.                     l = r + 1;
  15.                 }
  16.                 else if (line[l] != '{')
  17.                 {
  18.                     break;
  19.                 }
  20.             }
  21.  
  22.             // html tags
  23.             for (var r = l; r < len; r++)
  24.             {
  25.                 if (line[r] == '<')
  26.                 {
  27.                     l = r;
  28.                 }
  29.                 else if (line[r] == '>' && line[l] == '<')
  30.                 {
  31.                     var tag = line.Substring(l, r - l + 1);
  32.                     if (knownTags.Contains(tag))
  33.                     {
  34.                         l = r + 1;
  35.                     }
  36.                     else
  37.                     {
  38.                         // stop in invalid tag
  39.                         break;
  40.                     }
  41.                 }
  42.                 else if (line[l] != '<')
  43.                 {
  44.                     break;
  45.                 }
  46.             }
  47.  
  48.             pre = line.Substring(0, l);
  49.             return line.Substring(l);
  50.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement