【问题标题】:Sublime Text Regex Syntax to Match Ending Bracket崇高文本正则表达式语法以匹配结束括号
【发布时间】:2015-08-05 15:33:12
【问题描述】:

我有一个巨大的 SQL 查询,如下所示:

SELECT Attr1 AS [Attr1], Attr2 AS [Attr2], ... AttrN AS [AttrN] from Table

使用 Sublime Text,我想删除 AS [Attr1], AS [Attr2] 等,因为它们是多余的,并将查询转换为这种形式:

SELECT Attr1, Attr2, ... AttrN from Table

到目前为止,我已经尝试过 AS[\W\w]*\],但选择了第一个 AS 到最后一个 ] 之后的所有内容。但是我应该停在下一个],我如何在 Sublime Text 中做到这一点?

【问题讨论】:

  • 在您看来,[\W\w] 是什么?

标签: regex sublimetext2 sublimetext3 sublimetext


【解决方案1】:

你应该使用non-greedy匹配器:

 AS \[.*?\]

什么都换

【讨论】:

    【解决方案2】:

    使用AS[\W\w]*?\]。这是一个不情愿匹配,所以它只会匹配到第一个]而不是最后一个。我认为最好使用:

     AS .*?]
    

    因为属性值可能包含AS

    【讨论】:

      【解决方案3】:

      (\w+) AS \[\1\] 替换为\1

      【讨论】:

      • 当然可以,我在 SublimeText 2.0.2 版上根据您的输入对其进行了测试。它完美无缺。
      • 很抱歉。结果我的全词搜索已打开,结果只找到了第一个结果。 :) +1
      • @hyde 我以为会是这样的:)
      猜你喜欢
      • 2019-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      相关资源
      最近更新 更多