2

I have simple sql-query, for example string sql="select 'a1,a2' f1, 2 f2;". How to parse string to object[] (using sql-syntax rules) without database? May be regex transform can be used.

nick_n_a
  • 198
  • 15

2 Answers2

1
var str = "select 'a1,a2' f1, 2 f2;";
Regex.Matches(str, "(^|[\\s,\\,]){1}(\\'.*\\'\\s*\\w+|[^\\,^']*)[\\,,$,;]")
        .Cast<Match>()
        .Select(m => m.Value.Split(new[] { ' '}, StringSplitOptions.RemoveEmptyEntries)
                            .First().Replace("\'",""))
        .ToArray();
  • Thanks, I try `select '1,a2' f1,2 a,'123' a,4, 1` or `select 1 a, 2 b, 3 c` and it's fail, but idea good. I use regex `"\\,(('[^']*[^,]*')|[^,]*)" ` and replace *select* to ','. More: `string str = "select '1,a2' f1,2 a,'123' a,4, a"; foreach (Match m in Regex.Matches(str.Replace("select",","),"\\,(('[^']*[^,]*')|[^,]*)")) Console.WriteLine(m.Value.Substring(1));` Thanks. – nick_n_a Nov 09 '16 at 13:00
0

You can use Split method of string in C# like .Split(',')

Farid Imranov
  • 2,017
  • 1
  • 19
  • 31