有个url:/result/last/location/{locationId}/*
如何通过 HttpServletRequest 用正则表达式把 {locationId} 中内容获取到
求教!!!!谢谢!!!!!
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()); }
不知道这样符不符合你的要求
@PathVariable 是比较好的方式
"{[}]"
提取括号的内容的正则你试试看
你可以通过 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 ""; } }