JAVAeclipse正则表达式查找替换
用Eclipse时,查找替换,可能是我们经常用的工具,但大多数只是查找替换简单的单词文本(如查找替换warnings),但遇到复杂的情况时,大多数人可能就手工改了。
例如:
[java] view plaincopy
/* */ 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*>)
我们知道查找替换支持正则表达式后,能实现很多的查询匹配,不过需要注意的是模糊匹配时要谨慎,不然替换错了容易导致问题。