RegEx替换/删除括号内的所有句点

时间:2016-08-19 21:28:36

标签: regex

我的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非常可怕,并且无法弄清楚如何在我的生命中逃脱这段时间,所以任何指针都会非常感激 - 谢谢!

1 个答案:

答案 0 :(得分:5)

句号.实际上是正则表达式中的一个特殊字符,表示"任何字符。"要使用特殊字符作为文字,你必须"逃避"它。通常,转义字符是反斜杠\

如果此表达式解决了您的问题,请告诉我:

(?<!\])\.(?!\[)

这个表达有三个部分:

  1. (?<!\])←负面的后瞻性意义&#34;前面没有一个紧密的括号&#34;
  2. \.←文字时期
  3. (?!\[)←否定前瞻意义&#34;后面没有开括号&#34;
  4. 在普通语言中,按顺序2,1,3读取这些内容是有意义的:一个句号前面没有一个紧括号,后面跟一个开括号。

    有关正则表达式的更多信息,请参阅regular-expressions.info,特别是此页面上的&#34; lookaheads&#34;和&#34; lookbehinds&#34;:http://www.regular-expressions.info/lookaround.html

    如果您想要更多练习,此网站有一个很好的界面,可用于测试和尝试正则表达式:https://regex101.com/