regex-sml.dib 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #!meta
  2. {"kernelInfo":{"defaultKernelName":"csharp","items":[{"aliases":[],"name":"csharp"}]}}
  3. #!csharp
  4. string sml = @"<L
  5. <L
  6. <A Hello World >
  7. >
  8. >.";
  9. #!csharp
  10. string smls = @"<L
  11. <L
  12. <A Hello World >
  13. >
  14. >.
  15. <L
  16. <L
  17. <A Greeting >
  18. >
  19. >.
  20. ";
  21. #!csharp
  22. using System.Text.RegularExpressions;
  23. string input = "baaabaaaaabababaa";
  24. string pattern = @"(?=a{3,})a+";
  25. Match match = Regex.Match(input, pattern);
  26. while (match.Success) {
  27. Console.WriteLine($"index {match.Index} - value {match.Value.ToString()}");
  28. match = match.NextMatch();
  29. }
  30. Regex.Replace(input, pattern, "+").Display();
  31. #!csharp
  32. #!set --name test --value @csharp:sml
  33. using System.Text.RegularExpressions;
  34. Regex regex = new Regex(@"(\<)(?<content>.*)(\>)(\.?)");
  35. Match match = regex.Match(test);
  36. string content = match.Groups["content"].ToString();
  37. content.Display();
  38. #!csharp
  39. #!set --name test --value @csharp:smls
  40. using System.Text.RegularExpressions;
  41. string typePattern = @"(?<type>[(L)(A)(B)(Boolean)(I1)(I2)(I4)(I8)(U1)(U2)(U4)(U8)(F4)(F8)])";
  42. string contentPattern = @"(?<value>.*?)";
  43. string pattern = @$"<(?<content>{typePattern}\s+{contentPattern})>\.";
  44. test = Regex.Replace(test, @"(?=\S*?)\s{2,}", " ");
  45. test = Regex.Replace(test, @"\s+>", ">");
  46. test.Display();
  47. Match match = Regex.Match(test, pattern);
  48. // Match match = Regex.Match(test, pattern, RegexOptions.Singleline);
  49. while (match.Success) {
  50. match.Groups["type"].ToString().Display();
  51. match.Groups["value"].ToString().Display();
  52. match.Groups["content"].ToString().Display();
  53. "".Display();
  54. match = match.NextMatch();
  55. }