我需要将我正在编写的 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/