簡體   English   中英

使用正則表達式檢查URL是否包含任何參數

[英]Check whether a URL contains any parameter or not using a regular expression

如何檢查是否有任何URL包含一個或多個參數?

例如,如果URL是

.../PaymentGatewayManager?mode=5015

那么我們應該能夠知道URL包含一個參數。 或者如果URL是

.../PaymentGatewayManager

那么我們應該能夠知道URL不包含任何參數。 或者如果URL是

.../PaymentGatewayManager?mode=5015&test=456123&abc=78

然后我們應該能夠知道URL包含三個參數,並且我們還應該能夠使用Java中的任何正則表達式知道參數名稱和值。

如果你想用正則表達式做(這也可以優化以在組內進行搜索):

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));
        }
    }
}

使用java.net.URI的方法獲取有關URL的所有信息。

編輯:使用URI,而不是URL(感謝McDowell)。

您可以使用String.split() URL,或使用java.util.StringTokenizer對其進行標記,使用? 作為分裂者角色。 如果您獲得多個部分,則確保該URL包含參數。

要獲取參數,通過分割第二部分&以同樣的方式。 你會得到參數。 將每一個拆分為=將為您提供名稱和值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM