日期:2014-05-20 浏览次数:20846 次
import java.util.regex.*; public class Test{ public static void main(String args[]) { String str="//package java.ts.code;\n" +"package java.ts.code;\n" +"import java.util.regex.*;\n " +"import java.util.*;\n" +"//public class Test\n" +"public class Test extends MyClass{ \n" +"public static void main(String args[]) {\n" +" String str=\"packege org.myfile\"\n" +"....."; System.out.println("Packege name: "+getPackage(str)); System.out.println("Public class name: "+getPublicClass(str)); } //下面的两个方法有一定的局限性,要求package语句和public class语句是一行的开始. //也就是说,语句之前可以有空白字符,但不能有注释.比如:/*abc */package abc,这样是提不出来的. // public static String getPackage(String fileStr){ String regex="(?im)^\\s*package\\s+([^;]+);"; Matcher m=Pattern.compile(regex).matcher(fileStr); if(m.find()){ return m.group(1).trim(); } return ""; } public static String getPublicClass(String fileStr){ String regex="(?m)^\\s*public\\s+class\\s+(\\w+)\\b"; Matcher m=Pattern.compile(regex).matcher(fileStr); if(m.find()){ return m.group(1).trim(); } return ""; } }