它不必是正则表达式。由于我认为没有标准的方法可以处理此问题,因此我使用的是从某处复制的内容(可能有一些修改):
public static Map<String, List<String>> getQueryParams(String url) { try { Map<String, List<String>> params = new HashMap<String, List<String>>(); String[] urlParts = url.split("\?"); if (urlParts.length > 1) { String query = urlParts[1]; for (String param : query.split("&")) { String[] pair = param.split("="); String key = URLDeprer.depre(pair[0], "UTF-8"); String value = ""; if (pair.length > 1) { value = URLDeprer.depre(pair[1], "UTF-8"); } List<String> values = params.get(key); if (values == null) { values = new ArrayList<String>(); params.put(key, values); } values.add(value); } } return params; } catch (UnsupportedEncodingException ex) { throw new AssertionError(ex); }}因此,当您调用它时,将获得所有参数及其值。该方法处理多值参数,因此使用
List<String>而不是
String,并且在您的情况下,您需要获取第一个列表元素。



