首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

不以import开头的代码行的正则表达式,该如何处理

2012-03-01 
不以import开头的代码行的正则表达式目标:匹配java文件中不以import开头的语句行把下面这个正则表达式放到

不以import开头的代码行的正则表达式
目标:匹配java文件中不以import开头的语句行
把下面这个正则表达式放到Eclipse的文件搜索框中,搜索Test.java,结果为空
^\s*(?<!\bimport\b).+\n

Java code
public class Test {    /**     * @param args     */    public static void main(String[] args) {//        ThreadFromRunnable tr = new ThreadFromRunnable();//        Thread thread = new Thread(tr);//        Thread thread2 = new Thread(tr);//        //        thread.start();//        thread2.start();                ThreadExtendsThread thread = new ThreadExtendsThread();        ThreadExtendsThread thread2 = new ThreadExtendsThread();        thread.start();        thread2.start();    }}

这个正则表达式为什么不能匹配任何一行?

[解决办法]
呵呵 同样问题等待回答
[解决办法]
(?!X) 专业名称为 Negative Lookahead,表示字符间缝隙后面不允许出现的字符, 
即匹配字符间的缝隙,如果缝隙后的字符不是 X 的话,那这个缝隙就匹配成功。 
举个例子,aab 和 aac,现有表达式 aa(?!b) 这时我们能匹配到的字符串是 aac, 
因为 aa 的后面的缝隙之后不允许出现字符 b,因此只有 aac 进行了匹配。 

下面的你就自己写吧。
[解决办法]
^[(?!)i(?!)m(?!)p(?!)o(?!)r(?!)t]+
[解决办法]
Java code
String s = "imsportada";        System.out.println(Pattern.matches("^(?:[^import]).*$", s)); 

热点排行