Eclipse使用正则表达式查找/替换整行

时间:2012-10-10 08:11:56

标签: java regex eclipse

我正在使用Eclipse的Find / Replace将一些sql代码格式化为Java字符串。我想将sql查询的每一行放在引号之间,并在末尾添加换行符。

以下是我在查找字段中输入的内容:

(.*)

这是我放在替换字段中的内容

\t\t+ "\1\\n"

这是一个简单的例子(我的实际sql查询大约是200行)

SELECT *

FROM User
WHERE User.Id = 1232164

这是我希望在

之后看到的
    + "SELECT *\n"
    + "\n"
    + "FROM User\n"
    + "WHERE User.Id = 1232164\n"

然而,当遇到空白行时,查找失败,它表示没有更多匹配的结果并终止(或者如果标记了“包裹的搜索”选项,则跳转到文件的顶部)

我也尝试在find regex中使用以下内容

^(.*)
^(.*)$

结果相同

任何人都知道我做错了什么,或者这是Eclipse中的一个错误。

为了它的价值,它在我最初写的时候在Emacs中运行良好。

1 个答案:

答案 0 :(得分:5)

它让我觉得它是Eclipse中的一个错误。尽管如此,我已经通过使用搜索模式获得了您期望的结果(在Eclipse Juno中):

(.*)\R

和替换字符串:

\t\t+ "\1\\n"\R

请注意,\R是一种特殊的Eclipse模式,可在搜索时匹配任何形式的行分隔符。替换时,它会插入文档的默认行分隔符。