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

Java中用Regex筛选含Support.java的文件名(排除单独Support.java)

Java正则筛选带前缀的Support.java文件名

问题拆解

你要找的是前面有非空内容、结尾固定为Support.java的文件名,得排除掉单独的Support.java。之前踩的坑:

  • [Support.java]是字符类语法,只会匹配括号里的单个字符(比如S、u、p这些),完全不符合需求;
  • (Support.java)只是把目标字符串做了分组,没限制前缀,所以会把单独的目标文件也包含进来。

正确正则写法

在Java里用这个正则就能满足需求:

^.+Support\.java$

规则说明

  • ^:锚定字符串开头,确保从文件名字符串最开始匹配
  • .+:匹配至少一个任意字符,保证前缀不为空
  • Support\.java:匹配固定后缀,注意正则里.是通配符,必须用\转义(Java字符串里要写两个\\,因为字符串本身的转义机制)
  • $:锚定字符串结尾,确保整个文件名就是前缀+固定后缀的结构

代码示例

import java.util.regex.Pattern;

public class FileFilterDemo {
    public static void main(String[] args) {
        String regex = "^.+Support\\.java$";
        Pattern pattern = Pattern.compile(regex);
        
        // 测试不同文件名
        String[] testFiles = {
            "SomethingSupport.java",
            "AnotherSupport.java",
            "MoreThingsSupport.java",
            "Support.java",
            "RandomFile.java",
            "Support.java.bak"
        };
        
        for (String fileName : testFiles) {
            if (pattern.matcher(fileName).matches()) {
                System.out.println("符合条件:" + fileName);
            }
        }
    }
}

运行后只会输出前三个带前缀的文件名,单独的Support.java会被排除。

进阶优化

如果想限制前缀只能是字母、数字或下划线,把.+换成[a-zA-Z0-9_]+就行,正则变为:

^[a-zA-Z0-9_]+Support\.java$

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 20:15:42