【发布时间】:2010-04-13 18:52:40
【问题描述】:
任何人都可以为以下搜索和替换(转换)提供记事本++的正则表达式
ADD ( PRIMARY KEY (xxx) ) ;
到
ADD PRIMARY KEY (xxx) ;
基本上,删除了主键表达式周围的 ()。不同语句中的 xxx 值不同。
如果不是notepad++,我也可以试试vim 或任何shell 脚本的正则表达式。
非常感谢。 巴布。
【问题讨论】:
任何人都可以为以下搜索和替换(转换)提供记事本++的正则表达式
ADD ( PRIMARY KEY (xxx) ) ;
到
ADD PRIMARY KEY (xxx) ;
基本上,删除了主键表达式周围的 ()。不同语句中的 xxx 值不同。
如果不是notepad++,我也可以试试vim 或任何shell 脚本的正则表达式。
非常感谢。 巴布。
【问题讨论】:
搜索:
ADD \( PRIMARY KEY \((.+)\) \) ;
替换为:
ADD PRIMARY KEY (\1) ;
【讨论】:
在 perl 中假设你将这一行读入 $line
$line =~ s/([^(]+)\((.*)\)/$1$2/
会做这项工作。这也使您免于剪切粘贴 ADD PRIMARY KEY ...(具有正确数量的空格。正则表达式在这里所做的是
a) 将所有内容匹配到第一个(并将其捕获到 $1
b) 匹配 (
c) 匹配所有字符直到但不包括最后的 ) 并将其捕获到 $2 中。
d) 匹配尾随 )
e) 将原始字符串替换为 $1$2。
【讨论】:
试试这个,虽然 x 是 xxx 的最后一个单词,你也可以把它改成点
搜索什么:\s\s\K\(|x\) \K\)
替换为:nothing
如果没有成功,
请分享您的完整字符串示例
以及想要的输出......
【讨论】:
您不需要正则表达式。搜索 '( ' 并替换为空格。然后搜索 ') ' 并替换为空。
即'([space]' 和')[space]'。
【讨论】: