RegEx:/article/list/(\d+)_(\d+)$ 
URL:  /article/list.vhtml?ClassID=$1&SubjectID=$2
当我获得这个URI的时候
/article/list/24_2
Java中的java.util.regex 包中是否有方法把 第一组和第二组值填入 $1 $2 处?这样就可以轻松变成:
/article/list.vhtml?ClassID=24&SubjectID=2请高人指点,小生有礼了。

解决方案 »

  1.   

       不用正则, 用 String.replace 可以搞定。 
    先截取到24、2 , 然后分别用24替换$1、2替换$2 . 
      

  2.   

    String sIds="/article/list/24_2";
    System.out.println(sIds.replaceAll("(.*)/(\\d+)_(\\d+)$", "$1+.vhtml?ClassID=$2&SubjectID=$3"));
      

  3.   

    可以不用正则,也不要用$1、$2来标记,可以直接用$,但无论如何url中别的地方不能再出现这个$标记
    String url = "/article/list/24_2";
    String value = url.subString(url.lastIndexOf("/"),url.length());
    String[] values = value.split("_");
    String otherUrl = "/article/list.vhtml?ClassID=$&SubjectID=$";
    for(int i = 0; i < values.length; i++) {
        otherUrl = otherUrl.replaceFirst("$",values[i]);
    }
      

  4.   

    看楼主的意思好像是想重写URL,用urlrewrite的包就可以了
    urlrewrite.xml里面就可以像楼主那样写。比如
    <rule> 
      <from>/article/list/(\d+)_(\d+)$ </from> 
      <to>/article/list.vhtml?ClassID=$1&SubjectID=$2</to> 
     </rule>