匹配URI的某些部分

时间:2015-01-20 20:18:53

标签: java

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

示例输入

  • /用户/松鸦
  • /用户/松鸦/简档
  • /用户/松鸦?VAR =值

在每种情况下,我想最终得到一个包含" jay"的字符串。简单地使用indexOf在这里是否合适,或者这更适合正则表达式?我对Java中的正则表达式的经验有限,所以任何帮助都表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:4)

为了做到这一点,我建议您使用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]);