没法写
package a.b.c;...a.b.c = d.e.f;前一个是包,后一个是类,怎么区分?

解决方案 »

  1.   

    除了关键字“package”以后的字符串
      

  2.   

    sorry,我再重复一遍:求:符合Java Package 命名规则的字符串,用正则表达式如何描述?正确示例
    example1: Identifier1.Identifier2.Identifier3
    example2: Identifier1错误示例
    example1: .Identifier1
    example2: Identifier1.
    example3: Identifier1...Identifier2
      

  3.   

    String regex = "(\\w+.)*\\w+";
      

  4.   

    Package 的命名:名字应该都是由一个小写单词和少量数字组成,如tools。 并且分层次,如java.awt(Java 中的包以 java. 和 javax 开头,比如上面的:java.awt)、别的单位开发的包以该单位的 Internet 域名部分开头,比如:com.sun、com.borland等。
    import java.util.regex.*;public class PackageTest {
      public PackageTest() {
      }  public static void main(String[] args) {
        String[] strPackage = {"identifier1.identifier2.identifier3",
                              "identifier1",
                              ".identifier1",
                              "identifier1.",
                              "identifier1...identifier2"};    Pattern p1 = Pattern.compile("^[a-z0-9][a-z0-9\\.]+[a-z0-9]$");
        Pattern p2 = Pattern.compile("\\.{2}");
        for(int i = 0; i < strPackage.length; i++) {
          Matcher m1 = p1.matcher(strPackage[i]);
          Matcher m2 = p2.matcher(strPackage[i]);
          System.out.println(strPackage[i] + ":" + (m1.matches() & !m2.find()));
        }
      }
    }个人认为package只能包含小写字母,所以用^[a-z0-9][a-z0-9\\.]+[a-z0-9]$匹配
    如果你认为可以包含大写字母,那就用^[a-zA-Z0-9][a-zA-Z0-9\\.]+[a-zA-Z0-9]$匹配吧
      

  5.   

    String yourStr = "sdas package xcz.234.dfg djhgasdgk";Pattern p1 = Pattern.compile( "[.]*package[\\s]+([\\w]+[\\p{Punct}]*)+" );
    Matcher m1 = p1.matcher( yourStr );
    while (m1.find()){
    String tmp = yourStr.substring(m1.start(),m1.end());
    System.out.println( tmp );
    }
      

  6.   

    应该这样子;String yourStr = "sdas package xcz.234.dfg djhgasdgk";Pattern p1 = Pattern.compile( "[.]*package[\\s]+([\\w][\\p{Punct}]*)+" );
    Matcher m1 = p1.matcher( yourStr );
    while (m1.find()){
    String tmp = yourStr.substring(m1.start(),m1.end());
    System.out.println( tmp );
    }
      

  7.   

    应该这样:
    String yourStr = "sdas package xcz.234.dfg djhgasdgk";Pattern p1 = Pattern.compile( "[.]*package[\\s]+([\\w][\\p{Punct}]*)+" );
    Matcher m1 = p1.matcher( yourStr );
    while (m1.find()){
    String tmp = yourStr.substring(m1.start(),m1.end());
    System.out.println( tmp );
      

  8.   

    Pattern p=Pattern.compile("^[a-z][a-z0-9]+(\\.[a-z][a-z0-9]+)*",Pattern.CASE_INSENSITIVE);
    这个看看