首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

正则表达式的有关问题,求帮忙看下~

2013-06-25 
正则表达式的问题,求帮忙看下~~我在写urlrewrite的rule。比如一个url:http://www.xxx.com/web/cp.jsp?aclo

正则表达式的问题,求帮忙看下~~
我在写urlrewrite的rule。
比如一个url:
http://www.xxx.com/web/cp.jsp?ac=login&op=checkemail
想换成
http://www.xxx.com/web/login/checkemail

问题就是:一般有两个固定参数,ac,op。但op参数有时候有,有时候没有。
我就想将ac=ac1&op=op1
转换成ac1/op1
如果是ac=ac1(没有op)
就直接ac1。
这个依据正则怎么写? 正则表达式 URL urlrewrite
[解决办法]

package regExp;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class UrlEncoder {

public static String getParameter(String url,String param){
Pattern p=Pattern.compile("(?<=[\\?&]"+param+"=)\\w+");
Matcher m = p.matcher(url);
if(m.find()){
return m.group(0);
}
return null;
}

public static String encode(String url){
String str = url.substring(0, url.lastIndexOf("/"));
String ac = getParameter(url,"ac");
String op = getParameter(url,"op");
return str+"/" + ac + (op == null ? "" : "/" + op );
}

public static void main(String[] args) {
String url = "http://www.xxx.com/web/cp.jsp?ac=login&op=checkemail";
//String url = "http://www.xxx.com/web/cp.jsp?ac=login1";
System.out.println(encode(url));
}
}

热点排行