比如:d:\asdf\asdfa\feaf.exe
e:\asdf\asdf%%f\fas%d.pdf
怎么写正则表达式,把文件名取出来,但反斜杠前的都不要,
我自己写了一个但名字中含有符号就取不出来了,
(?<=\b\\)\w+(.exe|.pdf|.zip)
不知谁能帮我写一个谢谢!
同时有没有比不用正则表达式更简单的方法啊?
如果我只要是在一个路径中,取出它的文件名来?

解决方案 »

  1.   

    这样不行吗?String test = "d:\\asdf\\asdfa\\feaf.exe";
    String fileName = test.substring(test.lastIndexOf('\\')+1);
    System.out.println(fileName);
      

  2.   

    用 SPLIT分割字符串,取最后一个元素不就是你要的文件名吗?
      

  3.   

    class Estazolam {
      public static void main(String[] args) {
        String a[];
        String test = "d:\\asdf\\asdfa\\feaf.exe";
        a=test.split("\\");
        System.out.print(a[a.length-1]);
      }
    }
    /*求解为什么代码运行不出结果来不懂,我新手,才学JAVA*/
      

  4.   


    String[] array={"d:\\asdf\\asdfa\\feaf.exe","e:\\asdf\\asdf%%f\\fas%d.pdf"};
    for(String str:array){
        System.out.println(str.replaceAll("^.*\\\\",""));
    }无论用split还是substring都是可以做到的。
      

  5.   

    正则表达式中两个反斜杠表示一个反斜杠,java中两个反斜杠表示一个反斜杠,因此你想在运行在java上的正则表达式中标识出一个反斜杠,就需要用四个反斜杠来表示
      

  6.   


    谢谢,a=test.split("\\");改成4个斜杠就可以了