从MDX查询字符串中提取数据

时间:2018-09-18 14:46:33

标签: c# regex

我有从SQL Analysis Services(扩展事件)中捕获的数百个MDX查询。

它们看起来像这样:

SELECT {[Measures].[ Count - Sales],[Measures].[ Count - Customers],[Measures].[Revenue]} DIMENSION PROPERTIES PARENT_UNIQUE_NAME,HIERARCHY_UNIQUE_NAME ON COLUMNS , NON EMPTY Hierarchize(DrilldownMember({{DrilldownMember({{DrilldownLevel({[DimDate].[Calendar Date].[All]},,,INCLUDE_CALC_MEMBERS)}}, {[DimDate].[Calendar Date].[Calendar Year].&[2014],[DimDate].[Calendar Date].[Calendar Year].&[2015],[DimDate].[Calendar Date].[Calendar Year].&[2016],[DimDate].[Calendar Date].[Calendar Year].&[2017],[DimDate].[Calendar Date].[Calendar Year].&[2018],[DimDate].[Calendar Date].[Calendar Year].&[2013]},,,INCLUDE_CALC_MEMBERS)}},

我需要写一点c#来提取数据:

[Measures].[ Count - Sales]
[Measures].[ Count - Customers]
[Measures].[Revenue]
[DimDate].[Calendar Date].[All]
[DimDate].[Calendar Date].[Calendar Year]

等等。

我不在乎是否有重复会员。

我可以相信范围是: [措施]秒] [转至第二或第三]

我倾向于使用Regex提取数据:

关于正则表达式的任何想法都可以捕获以上元素?

1 个答案:

答案 0 :(得分:1)

这应该有效:

\[[^\]]+\]\.\[[^\]]+\](\.\[[^\]]+\])?

说明:

\[[^\]]+\]-打开方括号,直到右方括号,再将方括号括起来(让我们将其称为括号)。

其后是圆点和另一个括号。点号和括号的最后一部分是可选的。