You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则精确匹配问题:如何正确匹配末尾为/content的特定用户路径

修正路径匹配的正则表达式问题

你的问题出在正则里的.*——它会匹配任意字符(包括斜杠/),所以会把中间包含多个子目录的路径也误判为符合要求。要解决这个问题,我们需要限制用户ID部分只能是不包含斜杠的字符,也就是只匹配users后面的一级目录。

修正后的正则表达式

把原来的.*替换成[^/]+:

^/root/m/api/users/[^/]+/content$
  • [^/]+的意思是:匹配一个或多个非斜杠的字符,这样就只会捕获users和content之间的单一级用户ID目录,不会让中间出现额外的/分隔的子路径。

修正后的Java代码

private boolean isPathAllow(final String urlToBlock) {
    Matcher matcher = Pattern.compile("^/root/m/api/users/[^/]+/content$").matcher(urlToBlock);
    return matcher.matches();
}

这样修改后,/root/m/api/users/acme/content会正常匹配,而/root/m/api/users/acme/applications/versions/1.0/content因为中间有额外的/,就会被正确排除。

内容的提问来源于stack exchange,提问作者Shay Zambrovski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:04:42