1. 程式人生 > >eclipse 查詢替換巧妙技巧用法

eclipse 查詢替換巧妙技巧用法

用Eclipse時,查詢替換,可能是我們經常用的工具,但大多數只是查詢替換簡單的單詞文字(如查詢替換warnings),但遇到複雜的情況時,大多數人可能就手工改了。

例如:

/*     */ public class Configuration  
/*     */ {  
/*     */   private List<context> contexts;  
/*     */   private List<String> classPathEntries;  
/*     */   
/*     */   public Configuration()  
/*     */   {  
/*  41 */     this.contexts = new ArrayList();  
/*  42 */     this.classPathEntries = new ArrayList();  
/*     */   }  
/*     */  
/*     */   public void addClasspathEntry(String entry) {  
/*  46 */     this.classPathEntries.add(entry);  
/*     */   }  
/*     */ }  
</context>  

在遇到上述程式碼時,我們能很簡單的替換掉“/*     */”,但是卻無法替換類似“/*  41 */”的註釋。

其實,Eclipse的查詢替換工具是支援正則表示式的,如圖:


勾選"Regular expressions",即切換為“正則表示式”模式。

在Find輸入框中輸入:/\* (\s|\w)* \*/

然後替換便可一次性將所有“/*     */”及其中間含有數字的註釋替換掉。

再例如,匹配以<title>開頭</title>結尾的字串:<title>.*?</title>

匹配HTML或XML標籤:<(\S+)(((\s[^<>]*)?\/>)|(\s[^>]*)?>[\s\S]*?<\/\1\s*>)

我們知道查詢替換支援正則表示式後,能實現很多的查詢匹配,不過需要注意的是模糊匹配時要謹慎,不然替換錯了容易導致問題。