fork download
  1. using System;
  2. using System.Text.RegularExpressions;
  3.  
  4. public class Test
  5. {
  6. public static void Main()
  7. {
  8. var input = "COMMAND STATUS {OBJECT1}{OBJECT2} \"TEXT1\" \"TEXT2\" ";
  9. var regex = "(?<command>.+?) (?<status>.+?) (?<objects>\\{.+?\\})+ (?:(?<texts>\".+?\") ?)+";
  10.  
  11. var match = Regex.Match(input, regex);
  12.  
  13. Console.WriteLine("command: {0}", match.Groups["command"]);
  14. Console.WriteLine("status: {0}", match.Groups["status"]);
  15.  
  16. foreach (var @object in match.Groups["objects"].Captures)
  17. Console.WriteLine("object: {0}", @object);
  18.  
  19. foreach (var text in match.Groups["texts"].Captures)
  20. Console.WriteLine("text: {0}", text);
  21. }
  22. }
Success #stdin #stdout 0.08s 24520KB
stdin
Standard input is empty
stdout
command: COMMAND
status: STATUS
object: {OBJECT1}
object: {OBJECT2}
text: "TEXT1"
text: "TEXT2"