朋友们啊, 抑郁啊, 被这个东西搞晕了
  正则表达式一:String filePath; 需要满足文件路径
  正则表达式二:String str;  需要满足如下条件
                          1。 只能由0-9,a-zA-Z和下划线'_'横线'-'还有'.'组成
                          2。 末尾字符不能是数字
谢谢大虾们啊

解决方案 »

  1.   

    1:([a-zA-Z]\:)(\\[^\\/:*?<>"|]*)*(\.[a-zA-Z_0-9]{2,6})
    2:[0-9A-Z_a-z\\-\\.]+写得不怎么好  见笑了
      

  2.   


    public static boolean checkPath(String filePath){
    return filePath.length() == filePath.replaceAll("[^a-zA-Z0-9\\-\\_\\.]", "").length();
    }第一个用这个可以么
      

  3.   

    我没在java环境下写 忘记转义了.sorry
    1:([a-zA-Z]\\:)(\\\\[^\\/:*?<>\"|]*)*(\\.[a-zA-Z_0-9]{2,6})
    2:要求末尾不是数字的话这样吧
    [0-9A-Z_a-z\\-\\.]*[A-Z_a-z\\-\\.]$
      

  4.   

    [A-Za-z]:\\\\([^\<\>\\\/\?\:\"\*\|]+\\)*[^\<\>\\\/\?\:\"\*\|]+
    [\w\_\-\.]*[A-Za-z\_\-\.]$
      

  5.   

    [A-Za-z]\:\\\\([^\<\>\\\/\?\:\"\*\|]+\\)*[^\<\>\\\/\?\:\"\*\|]+
    [\w\-\.]*[A-Za-z\_\-\.]$
      

  6.   

    第二条: String str = "22ad-__...";
    System.out.println(str.matches("(\\w|-|\\.)*\\D$"));//true
      

  7.   

    第一个还可以精简下:
    (\\p{Alpha}\\:)(\\\\[^\\/:*?<>\"|]*)*(\\.\\w{2,6})因为:
    \p{Lower} = [a-z] 
    \p{Upper} = [A-Z]
    \p{Alpha} = [\p{Lower}\p{Upper}]  
    所以:
    [a-zA-Z] = \p{Alpha}又因为:[a-zA-Z_0-9] = \w