本帖最后由 miraclestar 于 2014-05-16 15:54:45 编辑

解决方案 »

  1.   

    楼主这个完全可以不用正则String s="/home/32/41735.h264_1.04005201.txt";
    int start=s.lastIndexOf("/");//取最后一个/出现的位置
    s=s.substring(start+1, s.indexOf(".",start));//从最后一个出现/位置到/后面出现的第一个.的位置
    System.out.println(s);
      

  2.   

    System.err.println("/home/32/41735.h264_1.04005201.txt".replaceAll(".*/(\\d{5,})\\..*", "$1"));
      

  3.   

    你不也说 是 截取最后一个 【反斜线】和【第一个点】之间的【数字】
    哪干嘛还要正则 多麻烦 还要想半天String s = "/home/32/41735.h264_1.04005201.txt";
    String dest = s.substring(s.lastIndexOf("/")+1, s.indexOf("."));
      

  4.   

    获取字符串的长度,把字符串存入数组,遍历数组元素for循环,从最右边的元素开始判断,是否有"/" ,有的话保存右边字符串,跳出循环,在从左判断元素“.”,有的话跳出,保存左边的字符串(就是字符串的长度—循环了几次,然后按位保存)。笨方法,值提供一个思路,勿喷!!
      

  5.   


            String string2=string.replaceAll(".*/([^.]*?)\\..*", "$1");