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 strs = new[] { "aaa bbbb; Name=John Lewis; ccc ddd; Age=20;", "AAA bbbb; Age=21;", "Irrelevant", "My Name=Wiktor; no more data" };
  12. var pattern = @"(?:\bName=(?<Name>[^;]+).*?;\s+)?(?:\bAge=(?<Age>\d+))?";
  13. foreach (var str in strs)
  14. {
  15. var results = Regex.Matches(str, pattern)
  16. .Cast<Match>()
  17. .Where(m => m.Groups["Name"].Success || m.Groups["Age"].Success)
  18. .Select(p => new {key=p.Groups["Name"].Value, val=p.Groups["Age"].Value} )
  19. .ToList();
  20. foreach (var r in results)
  21. {
  22. Console.WriteLine("Name: \"{0}\", Age: \"{1}\"", r.key, r.val);
  23. }
  24. }
  25. }
  26. }
Success #stdin #stdout 0.04s 30504KB
stdin
Standard input is empty
stdout
Name: "John Lewis", Age: ""
Name: "", Age: "20"
Name: "", Age: "21"
Name: "Wiktor", Age: ""