日期:2014-05-20  浏览次数:20684 次

请教一个正则替换的问题
http://www.domain.com/show.php?id=xxx&s=kkk
http://list.domain.com/list_xxx.html?t=kkk

其中xxx kkk 为变量

有如上两种url,如何通过正则替换将他们匹配替换成以下格式

http://www.domain.com/show.php?id=xxx
http://list.domain.com/list_xxx.html
代码如下



String[] RgexArray = new String[2];
RgexArray[0] = 正则匹配替换1;
RgexArray[1] = 正则匹配替换2;

for(int i = 0 ; i < RgexArray.length ; i++){
  url = url.replaceAll(RgexArray[i],"");
}

请教


------解决方案--------------------
不是太明白你要干啥.
是说url中只能在?后面跟一个id=xxx,其他的都不要,并且必须按你所给代码的方式来进行,是这样么? 

如果是的话,给你段代码.
Java code

      String url = "http://www.domain.com/show.php?ss=xxx&id=kkk&s=kkk&s=kkk&s=kkk";

    String[] RgexArray = new String[2];
    RgexArray[0] = "(?<=\\?).+(?=id=[^&]*)";//第一步将?和id之间的都去掉
    RgexArray[1] = "&.*|\\?(?!id).*";//第二步将&xx什么的或者?后面不带id的都去掉

    for (int i = 0; i < RgexArray.length; i++) {
        url = url.replaceAll(RgexArray[i], "");
    }

    System.out.println(url);