String s  = "xxx/list_*.html";String s1 = "xxx/list_32.html";
String s2 = "xxx/list_28.html";
String s3 = "xxx/list_1.html";
String s4 = "xxx/list_2578.html";
.....
想用正则表达式参照s的*占位符,把s1的32、s2的28、s3的1、s4的2578取出来,该如何做?

解决方案 »

  1.   


    String s1 = "xxx/list_32.html";
    String s2 = "xxx/list_28.html";
    String s3 = "xxx/list_1.html";
    String s4 = "xxx/list_2578.html"; 
    String str[] = new String[]{s1,s2,s3,s4};
    String reg = "^.+?/list_(\\d+)\\.html$"; Pattern p = Pattern.compile(reg);
    Matcher m = null;

    for(int i=0; i<str.length; i++){
    m = p.matcher(str[i]);
    if(m.matches()){
    System.out.println(str[i]+":\t"+m.group(1));
    }
    }
      

  2.   

    感谢1楼的朋友,不过我想封装成如下方法,能帮我做一下吗?再次感谢!/**
    * 参数说明:
    * url: 如上面的s1、s2、s3、s4
    * refer:上面的s,String s  = "xxx/list_*.html"; 
    * placeholder:占位符,如“*”

    * 返回:
    * 占位符中的值,如s1的32、s2的28、s3的1、s4的2578
    */
    public String getID(String url, String refer, String placeholder){}
      

  3.   


    感谢1楼的朋友,我想封装成如下方法,能帮我做一下吗?/**
    * 参数说明:
    * url: 如上面的s1、s2、s3、s4
    * refer:上面的s,String s  = "xxx/list_*.html"; 
    * placeholder:占位符,如“*”

    * 返回:占位符中的值,如s1的32、s2的28、s3的1、s4的2578
    */
    public String getID(String url, String refer, String placeholder){}
    再次感谢!
      

  4.   

    我有思路了,将refer变量用placeholder占位符切成前后两部分,再用表达式和url匹配。谢谢1楼