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();

ただし、これにより、テーブル名を含む、括弧内のすべてのフレーズが検索されることに注意してください。これは、収益が 2 回発生することも意味します。しかし、これで始められるはずです。

于 2013-09-05T05:10:11.670 に答える