小编Dan*_*ing的帖子

用于从MDX查询中提取元素的正则表达式

我想从给定的MDX查询中提取信息或查询轴元素.假设我有这个查询:

SELECT NON EMPTY {
    Hierarchize({[Product].[Product Family].Members})
} ON COLUMNS, 
NON EMPTY Hierarchize ( 
    Union ( 
        CrossJoin ( {[Time].[1997].[Q1]}, 
            CrossJoin ([Store].[Store Name].Members, 
                [Store Type].[Store Type].Members
            )
        ), 
        CrossJoin({[Time].[1997].[Q2]}, 
            CrossJoin([Store].[Store Name].Members, 
                [Store Type].[Store Type].Members
            )
        )
    )
) ON ROWS FROM [Sales] 
WHERE {
    Hierarchize({[Measures].[Unit Sales]})
}
Run Code Online (Sandbox Code Playgroud)

我想提取的子字符串有这样的模式:[...](.[...])或[...].[...].成员

请注意,...表示任何字母数字,并且括号内的含义可以重现.因此,我期望的结果是:

[产品].[产品系列].会员; [时间] [1997] [Q1]..[时间] [1997] [Q2]..[商店].[商店名称].会员; [商店类型].[商店类型].会员; [措施].[单位销售]

我尽我所能,最后想出了这个正则表达式:

\[.*?[A-Za-z\s]\](.*?(\.\[.*?[A-Za-z\s]\])|(\.Members))
Run Code Online (Sandbox Code Playgroud)

但结果是:

[产品].[产品系列]; [时间].[1997].[Q1]},CrossJoin([Store]; [Store Name] .Members,[Store Type].[Store Type]; [Time].[1997].[Q2]},CrossJoin ([Store]; [Store Name] .Members,[Store Type].[Store Type]; [Sales] WHERE {Hierarchize({[Measures].[Unit Sales]

有人可以对我的正则表达式进行任何更正吗?任何帮助,将不胜感激.

regex mdx

6
推荐指数
1
解决办法
1201
查看次数

标签 统计

mdx ×1

regex ×1