我想“捕获”下一条路径以对其执行操作:
/root/m/api/users/<user-id-can be any combination of characters and digits>/content
路径必须以content
例如:
/root/m/api/users/acme/content
要这样做,我需要匹配正则表达式以了解这是否是正确的路径:
private boolean isPathAllow(final String urlToBlock) {
Matcher matcher = Pattern.compile("^/root/m/api/users/.*/content$").matcher(urlToBlock);
return matcher.matches();
}
但是即使在诸如以下请求时,它也会返回true:
/root/m/api/users/acme/applications/versions/1.0/content
所以我必须在matchs函数中做一些错误的事情。 这样做应该有帮助吗?
答案 0 :(得分:0)
我成功了:
Matcher matcher = Pattern.compile("^/root/m/api/users/\\w*/content$").matcher(urlToBlock);
或
Matcher matcher = Pattern.compile("^/root/m/api/users/[^/]+/content$").matcher(urlToBlock);
那么它们之间的区别(\\w*
与[^/]+
)是什么?
答案 1 :(得分:0)