我正在使用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中运行良好。
答案 0 :(得分:5)
它让我觉得它是Eclipse中的一个错误。尽管如此,我已经通过使用搜索模式获得了您期望的结果(在Eclipse Juno中):
(.*)\R
和替换字符串:
\t\t+ "\1\\n"\R
请注意,\R
是一种特殊的Eclipse模式,可在搜索时匹配任何形式的行分隔符。替换时,它会插入文档的默认行分隔符。