eclipse 查詢替換巧妙技巧用法
阿新 • • 發佈:2019-02-06
用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*>)
我們知道查詢替換支援正則表示式後,能實現很多的查詢匹配,不過需要注意的是模糊匹配時要謹慎,不然替換錯了容易導致問題。