2

我有以下字符串

 string _sql = "SELECT   [Date] ,[Product Name] ,Sum([Revenue]) as [Revenue]  FROM [tblC6FD_Data_16_BisLanguage17112011] Group By  [Date] ,[Product Name] ";

我想提取方括号内的所有子字符串

我想要这样的输出

[日期]

[产品名称]

[收入]

[日期]

[产品名称]

我尝试过类似的东西,但完全迷失了

  var str = _sql.Split(new[] { ',' },StringSplitOptions.RemoveEmptyEntries).Select(col => new { 
        col,token = col.TrimStart().Split().First()}).Where(x => x.token.Contains('[')).Select(x => x.token);
4

1 回答 1

8

这是您正在寻找的解决方案的草稿,使用正则表达式:

Regex regex = new Regex(@"\[[\w ]+\]");    
string[] inBrackets = regex.Matches(_sql)
                           .Cast<Match>()
                           .Select(m=>m.Value)
                           .ToArray();

但是,请记住,这会在括号中找到所有短语,包括表名。这也意味着收入将出现两次。但这应该让你开始。

于 2013-09-05T05:10:11.670 回答