java - 匹配 URI 的特定部分

标签 java

我需要将我正在编写的 Spring 过滤器的 URI 的特定部分解析为变量。我正在尝试提取用户名,它可能是 URI 的最后一部分、更复杂的 URI 的一部分或在用户名后包含查询字符串参数。

示例输入

  • /用户/周杰伦
  • /用户/周杰伦/个人资料
  • /users/jay?var=value

在每种情况下,我都希望以包含“jay”的字符串结束。在这里简单地使用 indexOf 是合适的,还是更适合正则表达式?我对 Java 中的正则表达式的经验有限,因此不胜感激。谢谢!

最佳答案

要正确执行此操作,我建议您使用 URI类。

URI users = URI.create("/users"); // Can be put as a final static field

URI uri = URI.create(uriString);  // Can be skipped if you have a URI as input

String afterUsers = users.relativize(uri).getPath();
if (afterUsers.isEmpty())
    System.out.println("No user");
else
    System.out.println("User: " + afterUsers.split("/", 2)[0]);

关于java - 匹配 URI 的特定部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28054416/

相关文章:

java - 无法切换自动提交

java - 尝试使用 for 循环组合数组中的元素

java - Spring 安全java.lang.AbstractMethodError

java - 将大量参数传递给 Java 类的最佳技术是什么?

java - ArrayBlockingQueue - 如何 "interrupt"正在等待 .take() 方法的线程

Java Spring如何设置多核Solr配置

java - 为什么这个数组初始值设定项会抛出 NullPointerException?

java - 最近迁移到 androidx,我发现 alertdialog 的布局问题

java - 属性 'profile' 不允许出现在元素 'beans:bean' 中

java - setOnClickListener() 不起作用