使用正则表达式检查URL是否包含任何参数

Bha*_*ani 2 java regex parameters url arguments

如何检查是否有任何URL包含一个或多个参数?

例如,如果URL是

.../PaymentGatewayManager?mode=5015
Run Code Online (Sandbox Code Playgroud)

那么我们应该能够知道URL包含一个参数.或者如果URL是

.../PaymentGatewayManager
Run Code Online (Sandbox Code Playgroud)

那么我们应该能够知道URL不包含任何参数.或者如果URL是

.../PaymentGatewayManager?mode=5015&test=456123&abc=78
Run Code Online (Sandbox Code Playgroud)

然后我们应该能够知道URL包含三个参数,并且我们还应该能够使用Java中的任何正则表达式知道参数名称和值.

Eug*_*ene 5

如果你想用正则表达式做(这也可以优化以在组内进行搜索):

public static void main(String[] args) {
    String input = ".../PaymentGatewayManager?mode=5015&test=456123&test2=SomeRandomValue&abc=78";
    if(input.contains("?")){
        System.out.println("It does contain parameters");
        input = "&" + input.substring(input.indexOf("?")+1) + "&";

        System.out.println(input);

        Pattern p = Pattern.compile("&?(\\w.+?)=(.+?)&");
        Matcher m = p.matcher(input);

        while(m.find()){
            System.out.println("Token ->" + m.group(1));
            System.out.println("Value ->" + m.group(2));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)