fork(1) download
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Text.RegularExpressions;
  6.  
  7. public class Test
  8. {
  9. public static void Main()
  10. {
  11. var tststr = @"Hi I am normal text <strong>but bold</strong> and normal again";
  12. var lst = new List<string>();
  13. var former_idx = 0;
  14. for (var m = Regex.Match(tststr, @"(?s)\s*<(\w+)\b[^>]*>.*?</\1>\s*"); m.Success; m = m.NextMatch())
  15. {
  16. lst.Add(tststr.Substring(former_idx, m.Index - former_idx));
  17. lst.Add(m.Value);
  18. former_idx = m.Index + m.Value.Length;
  19. }
  20. if (former_idx < tststr.Length)
  21. lst.Add(tststr.Substring(former_idx, tststr.Length - former_idx));
  22. Console.WriteLine(string.Join("\n", lst));
  23. }
  24. }
Success #stdin #stdout 0.09s 27424KB
stdin
Standard input is empty
stdout
Hi I am normal text
 <strong>but bold</strong> 
and normal again