fork download
  1. using System;
  2. using System.Linq;
  3. using System.Text.RegularExpressions;
  4.  
  5. public class Test
  6. {
  7. public static void Main()
  8. {
  9. var inputString = "car[brand=saab][wheels=4]";
  10. var lst=Regex.Matches(inputString, @"(\w+)((?:\[.*?\])+)").Cast<Match>()
  11. .Select(x=>new
  12. {
  13. name=x.Groups[1].Value,
  14. value=Regex.Matches(x.Groups[2].Value,"(?<=)\\[).*?(?=)\\])").Cast<Match>()
  15. .Select(y=>new
  16. {
  17. name=y.Groups[0].Value.Split('=')[0],
  18. value=y.Groups[0].Value.Split('=')[1]
  19. })
  20. });
  21.  
  22. foreach(var parent in lst)
  23. {
  24. Console.WriteLine(parent.name);
  25. foreach(var pairs in parent.value)
  26. {
  27. Console.WriteLine(pairs.name);
  28. Console.WriteLine(pairs.value);
  29. }
  30. }
  31. }
  32. }
Runtime error #stdin #stdout #stderr 0.07s 38760KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Unhandled Exception: System.ArgumentException: parsing "(?<=)\[).*?(?=)\])" - Too many )'s.
Parameter name: (?<=)\[).*?(?=)\])
  at System.Text.RegularExpressions.Syntax.Parser.ParseGroup (System.Text.RegularExpressions.Syntax.Group group, RegexOptions options, System.Text.RegularExpressions.Syntax.Assertion assertion) [0x00000] in <filename unknown>:0 
  at System.Text.RegularExpressions.Syntax.Parser.ParseRegularExpression (System.String pattern, RegexOptions options) [0x00000] in <filename unknown>:0 
  at System.Text.RegularExpressions.Regex.CreateMachineFactory (System.String pattern, RegexOptions options) [0x00000] in <filename unknown>:0 
  at System.Text.RegularExpressions.Regex.InitNewRegex () [0x00000] in <filename unknown>:0 
  at System.Text.RegularExpressions.Regex.Init () [0x00000] in <filename unknown>:0 
  at System.Text.RegularExpressions.Regex..ctor (System.String pattern, RegexOptions options) [0x00000] in <filename unknown>:0 
  at System.Text.RegularExpressions.Regex.Matches (System.String input, System.String pattern, RegexOptions options) [0x00000] in <filename unknown>:0 
  at System.Text.RegularExpressions.Regex.Matches (System.String input, System.String pattern) [0x00000] in <filename unknown>:0 
  at Test.<Main>m__0 (System.Text.RegularExpressions.Match x) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[System.Text.RegularExpressions.Match,<>__AnonType0`2[System.String,System.Collections.Generic.IEnumerable`1[<>__AnonType0`2[System.String,System.String]]]].MoveNext () [0x00000] in <filename unknown>:0 
  at Test.Main () [0x00000] in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.ArgumentException: parsing "(?<=)\[).*?(?=)\])" - Too many )'s.
Parameter name: (?<=)\[).*?(?=)\])
  at System.Text.RegularExpressions.Syntax.Parser.ParseGroup (System.Text.RegularExpressions.Syntax.Group group, RegexOptions options, System.Text.RegularExpressions.Syntax.Assertion assertion) [0x00000] in <filename unknown>:0 
  at System.Text.RegularExpressions.Syntax.Parser.ParseRegularExpression (System.String pattern, RegexOptions options) [0x00000] in <filename unknown>:0 
  at System.Text.RegularExpressions.Regex.CreateMachineFactory (System.String pattern, RegexOptions options) [0x00000] in <filename unknown>:0 
  at System.Text.RegularExpressions.Regex.InitNewRegex () [0x00000] in <filename unknown>:0 
  at System.Text.RegularExpressions.Regex.Init () [0x00000] in <filename unknown>:0 
  at System.Text.RegularExpressions.Regex..ctor (System.String pattern, RegexOptions options) [0x00000] in <filename unknown>:0 
  at System.Text.RegularExpressions.Regex.Matches (System.String input, System.String pattern, RegexOptions options) [0x00000] in <filename unknown>:0 
  at System.Text.RegularExpressions.Regex.Matches (System.String input, System.String pattern) [0x00000] in <filename unknown>:0 
  at Test.<Main>m__0 (System.Text.RegularExpressions.Match x) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[System.Text.RegularExpressions.Match,<>__AnonType0`2[System.String,System.Collections.Generic.IEnumerable`1[<>__AnonType0`2[System.String,System.String]]]].MoveNext () [0x00000] in <filename unknown>:0 
  at Test.Main () [0x00000] in <filename unknown>:0