我喜欢编写一个Java实用程序方法,该方法在指定的查询字符串中为paramName返回paramValue

Pattern p = Pattern.compile("\\&?(\\w+)\\=  (I don't know what to put here) ");

public String getParamValue(String entireQueryString, String paramName)
{
    Matcher m = p.matcher(entireQueryString);
    while(m.find()) {
        if(m.group(1).equals(paramName)) {
            return m.group(2);
        }
    }
    return null;
}


我将从我的servlet调用此方法,

    String qs = request.getQueryString(); //action=initASDF&requestId=9078-32&redirect=http://www.mydomain.com?actionId=4343
    System.out.println(getParamValue(qs, "requestId"));


输出应为9078-32

最佳答案

您可以使用正则表达式取反的组。请参阅另一个SO问题:Regular Expressions and negating a whole character group

您需要获取除&以外的所有内容。

09-27 22:52