我的MDX数据格式如下:
[Measures].[Gross Revenue(Exl. Post-Or Disc.)]
我的分裂逻辑将这些分开(例如Arr(' [Measures]',' [Gross Revenue(Exl.Post-Or Disc。)]')目前,这些部分已经悬而未决。虽然它并不完美,但解决这个问题的最简单方法是删除括号内的所有句号。
我目前的RegEx:
RegExReplace('[Measures].[Gross Revenue(Exl. Post-Or Disc.)]', '\[(.*?)\]', '', 1)
目前正在给我:
.
理想情况下,这应该是:
[Measures].[Gross Revenue(Exl Post-Or Disc)]
我对RegEx非常可怕,并且无法弄清楚如何在我的生命中逃脱这段时间,所以任何指针都会非常感激 - 谢谢!
答案 0 :(得分:5)
句号.
实际上是正则表达式中的一个特殊字符,表示"任何字符。"要使用特殊字符作为文字,你必须"逃避"它。通常,转义字符是反斜杠\
。
如果此表达式解决了您的问题,请告诉我:
(?<!\])\.(?!\[)
这个表达有三个部分:
(?<!\])
←负面的后瞻性意义&#34;前面没有一个紧密的括号&#34; \.
←文字时期(?!\[)
←否定前瞻意义&#34;后面没有开括号&#34; 在普通语言中,按顺序2,1,3读取这些内容是有意义的:一个句号前面没有一个紧括号,后面跟一个开括号。
有关正则表达式的更多信息,请参阅regular-expressions.info,特别是此页面上的&#34; lookaheads&#34;和&#34; lookbehinds&#34;:http://www.regular-expressions.info/lookaround.html
如果您想要更多练习,此网站有一个很好的界面,可用于测试和尝试正则表达式:https://regex101.com/