我有一个字符串 d:\aaa\bbb\ccc\ddd.exe 我想得到  d:\aaa\bbb\ccc\应该怎么写?

解决方案 »

  1.   

            String str = "d:\\aaa\\bbb\\ccc\\ddd.exe ";
         String regex="[a-zA-Z]:(\\\\[^/|\\*?<>:\"]+)*\\\\"; 
         Matcher m=Pattern.compile(regex).matcher(str);
         if(m.find()){
         System.out.println(m.group());
        
         }
      

  2.   

    package cn.fee.work;import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Test { public static void main(String[] args) {
    String str = "d:\\aaa\\bbb\\ccc\\ddd.exe ";
    String reg = "[a-zA-Z]:[\\\\[^d]+]+";
    Pattern p = Pattern.compile(reg);
    Matcher m = p.matcher(str);
    if(m.find()) {
    System.out.println(m.group());
    }
    }
    }
      

  3.   


    public class Test {
    public static void main(String[] args) {
    String str = "d:\\aaa\\bbb\\ccc\\ddd.exe";
    str = str.substring(0, str.lastIndexOf("\\"));
    System.out.print(str);
    }
    }
      

  4.   


    String str = "d:\\aaa\\bbb\\ccc\\ddd.exe ";
            String regex="[a-zA-Z]:(\\\\[^/|\\*?<>:\"]+)*\\\\"; 
            Matcher m=Pattern.compile(regex).matcher(str);
            if(m.find()){
                System.out.println(m.group());
                
            }
      

  5.   

    不知道你想要的是哪一种实现方式,我把能实现你的需求的三种实现方式都写出来了,觉得第二种实用些。
    String str = "d:\\aaa\\bbb\\ccc\\ddd.exe "; 
    System.out.println(str);
    //String reg = "[a-zA-Z]:[\\\\[^d]+]+"; //取得以d开头的文件名的根路径
    String reg = "[a-zA-Z]:(\\\\[a-zA-Z]+)*\\\\";//取得以最后一个文件之前的路径,这个比较实用
    //String reg = "[a-zA-Z]:\\\\([a-zA-Z]+\\\\){3}";//取得某个路径的前四个路径
    Pattern p = Pattern.compile(reg); 
    Matcher m = p.matcher(str); 
    if(m.find()) { 
    System.out.println(m.group()); 
      

  6.   


    请问可以具体讲一下  "[a-zA-Z]:(\\\\[^/|\\*?<>:\"]+)*\\\\";  是什么意思吗谢谢啊
      

  7.   

    [a-zA-Z]这个表示任一字母字符,所以"[a-zA-Z]:"用来匹配盘符.[^/|\\*? <>:\"]+这个用来匹配路径的名字.方括号中的/ | \ * ? < > : "这九个字符是windows不允许用来命名文件名和目录名的(我网上查的).这一项的意思是:非这九种字符组成的字符串,最小长度是1最大长度没有限制.////这个用来匹配一个/。*表示()中的字符串是0个或多个。
      

  8.   


    引用 4 楼 closewbq 的回复:
     Java codepublicclass Test {publicstaticvoid main(String[] args) {
             String str="d:\\aaa\\bbb\\ccc\\ddd.exe";
             str= str.substring(0, str.lastIndexOf("\\"));
             System.out.print(str);
         }
     } 顶