java - 如何使用Java从路径中获取路径参数

标签 java regex path-parameter

我有一条路径/departments/{dept}/employees/{id} 。如何获取deptid来自路径/departments/{dept}/employees/{id}

例如我想获取dept1id1如果路径是 /departments/dept1/employees/id1

我试过了

String pattern1 = "departments/"
String pattern2 = "/employees"
Pattern p = Pattern.compile(Pattern.quote(pattern1) + "(.*?)" + Pattern.quote(pattern2));
Matcher m = p.matcher(text);
while (m.find()) {
   String a = m.group(1);
}

有没有更简单的方法获取dept1和id1?我不想使用 string.split,因为我有不同的路径,我想获取路径参数,并且我不喜欢依赖路径参数的索引位置。

最佳答案

使用 Spring...或:

String url = /departments/{dept}/employees/{id}
             /----none--/-dept-/---none---/-id-

对 url 进行分割并获取数组 1 和 3 的位置:

String urlSplited = url.split("/");
String dept = urlSplited[1];
String id = urlSplited[3];

关于java - 如何使用Java从路径中获取路径参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57732195/

相关文章:

json - OpenAPI 路径/查询参数嵌套结构序列化

java - 如何用Solr管理 "paging"?

java - Oracle CONCURRENCY_WAIT_TIME 在这里意味着什么?

regex - 正则表达式匹配带小数分隔符和可选千位分隔符的数字

ruby - 这两个正则表达式捕获页面上的内部链接有什么区别?

javascript - 如何在http.put请求中使用路径参数

java - 如何将AbstrDoubleList的内容写入TextArea?

java - 按对象属性对对象数组进行排序

java - 替换文本匹配正则表达式的子字符串

java - 使用路径参数在路径上安装 Vert.x 子路由器