目标:匹配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));