使用占位符将url与参数匹配到url

时间:2015-09-27 05:16:48

标签: java regex url

我正在存储包含参数占位符的URL模式:{param}以确定插入params的位置,但是如果我使用占位符模式存储URL并传递带有参数的URL我不知道如何使用占位符标识原始URL。我将带有占位符的URL放在地图中,因此,如果我使用与存储的URL相同的URL查询地图,除了填充占位符,则找不到它。

例如 - 在地图中:

testurl/{param1}/{param2}

然后我想检查地图中是否有以下网址:

testurl/1/2

它应该找到哪个模式是唯一的,但我只是填写了参数..无论如何,我可以用正则表达式或其他?我不介意迭代地图中的所有网址并进行比较,但我只是不知道如何比较它们

2 个答案:

答案 0 :(得分:1)

您的参数值可以是任何不包含斜杠(/)的字符串,因此正则表达式为:

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

这将捕获您的两个参数。

它允许值为空。如果不需要,请将*更改为+

如果参数必须为整数,请更改为testurl/(\d+)/(\d+)(记住在插入Java字符串时加倍反斜杠(\))

答案 1 :(得分:0)

我知道为时已晚,但以供将来参考。您可以使用 UriTemplate。例如

UriTemplate uriTemplate = new UriTemplate(url);
if(uriTemplate.matches(other.url)){
   //match
}