2015-09-27 1617 views
0

我存儲了URL的模式,其中包含參數佔位符:{param}在其中確定插入params的位置,但是如果我將URL與佔位符模式一起存儲並傳入帶有參數的URL,不知道如何用佔位符標識原始網址。我將URL與佔位符放在地圖中,因此如果我使用與存儲的地址相同的URL查詢地圖,但佔位符已填充,則不會找到它。使用佔位符與url參數匹配url

例如 - 在地圖:

testurl/{param1}/{param2} 

然後我想檢查,如果下面的網址是地圖:

testurl/1/2 

它應該找到的模式是獨一無二的,但是我只是填寫了參數..有無論如何,我可以實現這與正則表達式或其他?我不介意遍歷映射中的所有URL並進行比較,但我只是不知道如何對其進行比較

回答

0

您的參數值可以是任何不包含斜槓的字符串(/),所以正則表達式將是:

testurl/([^/]*)/([^/]*) 

這將捕獲您的兩個參數。

它允許一個值爲空。如果不需要,請將*更改爲+。如果參數必須是整數,則變爲testurl/(\d+)/(\d+)(插入Java字符串時,記得要加倍反斜槓(\))上面

+0

只是一個例子,這可能是因爲有這樣的事情:testurl /分公司/ {參數1}/{參數2} /支等等。沒有特定的順序,每個網址跟隨,它是一個網址,只要它是一個有效的網址,參數可以在任何地方。 – joe

+0

這就是爲什麼我給了你可選參數版本,必需的參數版本和整數版本。您可以爲每個參數選擇要使用的參數,或者使用任何適合相關參數的其他正則表達式。 – Andreas