5

我正在使用 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 会失败,它表示没有更多匹配结果并终止(如果标记了“Wrapped Search”选项,则跳转到文件顶部)

我还尝试在查找正则表达式中使用以下内容

^(.*)
^(.*)$

结果相同

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

就其价值而言,它在我最初编写的 Emacs 中运行良好。

4

1 回答 1

5

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

(.*)\R

和一个替换字符串:

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

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

于 2012-10-10T08:58:17.757 回答