请教一个正则替换的问题
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);