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

如何实现带通配符的路径字符串匹配?

实现带通配符的路径匹配(Java)

你原来的代码用contains方法行不通,因为contains会把*当成普通字符去匹配,而实际路径里根本没有*,自然匹配不到。下面给你几种可行的实现方式:

方法一:使用正则表达式

把通配符*转换成正则里的[^/]+(匹配除斜杠外的任意字符,避免跨目录匹配),用Pattern和Matcher完成匹配:

private static void matchValue(String value) {
    // 将通配符*替换为正则表达式,确保只匹配单个目录
    String regexPattern = "/user/[^/]+/box/";
    // 启用忽略大小写模式
    Pattern pattern = Pattern.compile(regexPattern, Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher(value);
    
    if (matcher.find()) {
        System.out.println(value);
        System.out.println("Match Found");
    }
}

方法二:用Spring的AntPathMatcher(适合Spring项目)

如果是Spring项目,直接用框架自带的AntPathMatcher,它原生支持Ant风格的通配符(*匹配单个路径段,**匹配多级目录):

import org.springframework.util.AntPathMatcher;

private static void matchValue(String value) {
    AntPathMatcher pathMatcher = new AntPathMatcher();
    String rule = "/user/*/box/";
    // 忽略大小写的话,统一转成小写再匹配
    boolean isMatched = pathMatcher.match(rule.toLowerCase(), value.toLowerCase());
    
    if (isMatched) {
        System.out.println(value);
        System.out.println("Match Found");
    }
}

方法三:手动实现简单匹配逻辑

不想用正则或额外依赖的话,可以自己分割路径段逐个对比:

private static void matchValue(String value) {
    String rule = "/user/*/box/";
    // 按斜杠分割路径和规则,处理首尾斜杠带来的空字符串
    String[] valueParts = value.toLowerCase().split("/");
    String[] ruleParts = rule.toLowerCase().split("/");
    
    // 路径段数量不一致直接不匹配
    if (valueParts.length != ruleParts.length) {
        return;
    }
    
    boolean matchSuccess = true;
    for (int i = 0; i < ruleParts.length; i++) {
        String rulePart = ruleParts[i];
        String valuePart = valueParts[i];
        // 遇到*就跳过匹配,否则必须完全相等
        if (!"*".equals(rulePart) && !rulePart.equals(valuePart)) {
            matchSuccess = false;
            break;
        }
    }
    
    if (matchSuccess) {
        System.out.println(value);
        System.out.println("Match Found");
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 17:55:22