我有以下字符串
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);
答案 0 :(得分:8)
这是您正在寻找的解决方案的草稿,使用正则表达式:
Regex regex = new Regex(@"\[[\w ]+\]");
string[] inBrackets = regex.Matches(_sql)
.Cast<Match>()
.Select(m=>m.Value)
.ToArray();
但是,请记住,这将在括号中找到所有短语,包括表名。这也意味着收入将增加两倍。但这应该让你开始。