代码之家  ›  专栏  ›  技术社区  ›  bsr

记事本中的regex++

  •  2
  • bsr  · 技术社区  · 15 年前

    任何人都能提供一个regex for notepad++用于下面的搜索和替换(转换)

    ADD  ( PRIMARY KEY (xxx) ) ;
    

    ADD  PRIMARY KEY (xxx) ;
    

    基本上,删除了主键表达式周围的()。语句之间的值xxx不同。

    如果不是notepad++,我也可以尝试使用vim或任何shell脚本的regex。

    谢谢。 Babu。

    3 回复  |  直到 15 年前
        1
  •  4
  •   compie Artelius    15 年前

    搜索:

    ADD  \( PRIMARY KEY \((.+)\) \) ;
    

    替换为:

    ADD  PRIMARY KEY (\1) ;
    
        2
  •  0
  •   Jasmeet    15 年前

    在Perl中,假设您将该行读入$line

    $line =~ s/([^(]+)\((.*)\)/$1$2/
    

    会完成任务的。这还可以避免剪切粘贴添加主键…(使用正确的空格数)。Regex在这里做的是

    a)将所有东西都匹配到第一个(并将其捕获到1美元)

    b)匹配(

    c)匹配所有字符,但不包括决赛),并将其捕获到$2。

    d)匹配尾随)

    e)将原始字符串替换为$1$2。

        3
  •  -1
  •   Justin Johnson    15 年前

    你不需要注册前搜索 '( ' 替换为空格。然后搜索 ') ' 换成什么都没有。

    那就是 '([space]' ')[space]' .