RT正則不太懂,請教了!

解决方案 »

  1.   

    不清楚在Google上能否查到Java语言的整个BNF,里面估计有包命名的规则
      

  2.   

    public class TestMatch { /**
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
    // TODO Auto-generated method stub
    System.out.println( "Please   input   package: ");

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

     String s = null;
             while ((s=br.readLine()) != null) {
                 if (s.equals("exit")) {
                    break;
                 }
                 System.out.println(s.matches("[a-zA-Z_][\\w]*[\\.[\\w]+]*"));
             }

    }}
    自己搞了個,不太對啊,
    輸入
    a. 
    居然是true?
    幫忙看看
      

  3.   

    [a-zA-Z_][\\w]*([\\.][a-zA-Z_][\\w]*)*自己又搞了搞。這個應該比較靠譜了
      

  4.   

    包名不都应该小写字母么[a-z]+(\\.[a-z]+)*
      

  5.   

    这个可以的,但是\w以及.没必要再用[]
    [a-zA-Z_]\\w*(\\.[a-zA-Z_]\\w*)*
    就可以了当然,实际情况是中文什么的也可以package test.测试;public class A {  @Override
      public String toString() {
        return "toString() in test.测试.A";
      }
    }
      

  6.   


    确实如此,不过我就先不考虑了
    thank you