2012-10-10 42 views
4

我正在使用Eclipse的查找/替換將某些sql代碼格式化爲Java字符串。我想要在引號之間放置sql查詢的每一行,並在末尾添加換行符。Eclipse使用正則表達式查找/替換整行

以下是我把在查找字段:

(.*) 

這是我提出的替代領域

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

下面是簡單的例子(我的實際的SQL查詢是200行)

SELECT * 

FROM User 
WHERE User.Id = 1232164 

而這正是我期待

後看
+ "SELECT *\n" 
    + "\n" 
    + "FROM User\n" 
    + "WHERE User.Id = 1232164\n" 

然而,發現有沒有更多的匹配結果,並終止時,它遇到的空白行,它說失敗(或跳轉到該文件的頂部,如果「裹搜索」選項被標記)

我使用也試圖在查找正則表達式

^(.*) 
^(.*)$ 

具有相同的結果

任何人都知道我做錯了,或者這是perhapse一個錯誤在Eclipse以下。

對於它的價值,它在Emacs中正常工作,正如我最初編寫的那樣。

+0

你可以使用^ $匹配空行嗎?在這種情況下,您可以使用^ $ | ^(。*)$ – Lauri

+0

不,這不起作用。好主意,但。 – Craig

回答

4

它在Eclipse中引起了我的一個錯誤。

(.*)\R 

和替換字符串:

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

注意\R是匹配任何一個特殊的Eclipse模式不過,我已經通過使用搜索模式來實現你想要的結果(在Eclipse的Juno)搜索時行分隔符的形式。替換時,它插入文檔的默認行分隔符。

+0

我也在使用Juno,它也適用於我。你說得對,它是一個錯誤。它應該沒有行分隔符\ R。我想我會在有一段時間的時候報告它。非常感謝您的回答。 – Craig

相關問題