java 截取url参数的正则表达式

有个url:/result/last/location/{locationId}/*
如何通过 HttpServletRequest 用正则表达式把 {locationId} 中内容获取到
求教!!!!谢谢!!!!!

阅读 11.6k
4 个回答

你可以通过 spring的注解@PathVariable来获得locationId

public Result method(@PathVariable String locationId)

你也可以通过string 的split来截取

public class Test{
  public static void main(String[] args){
    String url = "/result/last/location/{locationId}/*";
   String result =   getStr(url,"location");
    System.out.println(result);
  }
  public static String getStr(String url,String key){
    if(url == null || key == null){
      return "";
    }
    String[] strs = url.split("/");
    for(int i=0;i<strs.length;i++){
        if(strs[i].equals(key)&&i<strs.length-1){
            return strs[i+1];
        }
    }   
    return "";
  }
}

"{[}]"
提取括号的内容的正则你试试看

@PathVariable 是比较好的方式

String str = "/result/last/location/{locationId}/*";

    String regex = "/\\{(\\w+)\\}/\\*";
    Pattern p = Pattern.compile(regex);
    Matcher m = p.matcher(str);
    while(m.find()){
        System.out.println(m.group());
    }

不知道这样符不符合你的要求

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题