当前位置: 首页 > news >正文

377. Java IO API - 什么是 Glob?——轻量级的文件名匹配语法

文章目录

  • 377. Java IO API - 什么是 Glob?——轻量级的文件名匹配语法
      • 🧵 基本规则说明
      • 🧪 示例讲解
      • ⚠️ 注意事项
      • ✅ 实战演示:筛选 `.java` 文件
      • 📚 延伸阅读

377. Java IO API - 什么是 Glob?——轻量级的文件名匹配语法

Glob是一种用于简洁匹配文件路径或名称的模式语法。你可以在Java的文件操作中使用glob语法进行目录过滤(如Files.newDirectoryStream(...))或者通过FileSystem.getPathMatcher("glob:...")创建路径匹配器。

Glob更简单直观,适合大多数文件名匹配场景。相比正则表达式,它更短、更易读


🧵 基本规则说明

语法含义
*匹配任意长度的任意字符(包括空字符)
**匹配任意层级的目录(包括路径分隔符/
?匹配单个任意字符
{a,b}匹配其中一个子模式(a 或 b)
[abc]匹配 a、b 或 c 中的任意一个字符
[a-z]匹配 a 到 z 的任意小写字母
\*\?匹配字面量星号或问号(转义特殊字符)

🧪 示例讲解

匹配模式匹配内容示例
*.html所有.html结尾的文件index.html✅,style.css
???.txt文件名恰好为 3 个字符加.txtabc.txt✅,abcd.txt
*[0-9]*包含任意数字的文件名file1.txt✅,notes.txt
*.{java,class,jar}匹配.java.class.jar文件Main.java
a?*.java以 a 开头,后跟至少一个字符,并以.java结尾ab.java✅,a.java
{temp*,tmp*}temptmp开头的文件名temp123.log✅,tmp2.txt
{foo*,*[0-9]*}foo开头或包含数字的文件名foobar.txt✅,data3.csv

⚠️ 注意事项

  • 如果你在命令行或代码中手动输入 glob 字符串,建议加上引号防止 shell 提前展开:

    "*.java"# 推荐加引号 \*.java # 或使用反斜杠转义
  • Glob 不是正则表达式。例如:

    • *.java是 glob 的写法,对应正则为.*\.java
    • ?[0-9]是 glob 的写法,对应正则为.\d

    如果你需要更复杂的模式,可以使用regex:开头的正则表达式形式:

    FileSystemfs=FileSystems.getDefault();PathMatchermatcher=fs.getPathMatcher("regex:.*\\.java");

✅ 实战演示:筛选.java文件

Pathdir=Paths.get("src");try(DirectoryStream<Path>stream=Files.newDirectoryStream(dir,"*.java")){for(Pathentry:stream){System.out.println("Found Java file: "+entry.getFileName());}}catch(IOExceptione){System.err.println("Failed to read directory: "+e.getMessage());}

📚 延伸阅读

  • 想深入了解 glob 与正则的区别?查看:FileSystem.getPathMatcher(String)方法的官方文档。
  • 对于复杂场景,如根据文件大小、权限过滤,建议使用自定义DirectoryStream.Filter<Path>
http://www.jsqmd.com/news/620184/

相关文章:

  • 踩过坑才明白:为什么 ZooKeeper 集群才是正经事
  • 3分钟掌握Taskbar11:Windows 11任务栏自定义的完整解决方案
  • 分享 种 .NET 桌面应用程序自动更新解决方案云
  • 2026届毕业生推荐的五大AI论文神器推荐
  • 浙江润鑫STW-18小车轮轴重检测磅 提升小型车辆轮轴重检测效率 - 资讯焦点
  • SINUMERIK数控系统数据采集全流程:从口令设置到S7协议配置的完整教程
  • CodeCombat离线部署踩坑记:从循环跳转到VIP权限,我的避坑指南
  • 2026 年粉尘烟气处理设备六大品牌排名及解析 - 十大品牌榜
  • SEATA分布式事务——AT模式琅
  • 一行命令,让你的 Code Agent 会读PDF
  • 2026 年废气处理设备六大品牌排名及解析 - 十大品牌榜
  • 厦门食品级不锈钢水箱厂家:二次供水安全的工程化解决路径 - 资讯焦点
  • 树莓派5-GPU加速实战:从OpenCL到TensorFlow Lite的探索之旅
  • 查看Ubuntu的版本
  • 你的标定结果真的准吗?深入聊聊张正友标定法背后的精度陷阱与评估方法
  • Vue3前端项目集成指南:调用Qwen3-14B-AWQ模型API实现智能交互
  • 工业设备故障预测R代码全披露:7个必用函数+4类特征工程技巧,90%工程师从未见过的生产级模板
  • Python DXF处理终极挑战:如何用ezdxf解决工程数据自动化难题
  • 国内免费云服务器阿贝云
  • 释放戴尔G15散热潜能:开源散热控制神器tcc-g15完全指南
  • 5步解锁Windows远程桌面完整功能:RDP Wrapper终极配置指南
  • GitHub开源项目日报 · 2026年4月8日 · Superpowers登顶,多款AI开发工具齐发力
  • 免疫组化蛋白检测技术指南:从抗体选择到信号放大
  • 高德POI数据采集工具推荐|基于高德API一键批量最新兴趣点信息
  • 使用Alpine配置WSL ssh门户兄
  • OpenClaw多模型对比:千问3.5-9B与本地LLaMA混搭方案
  • 【2026金融AI改造黄金窗口期】:为什么你必须在Q3前完成模型可解释性嵌入、实时风控链路重构与FRT(金融就绪测试)认证?
  • 从手动抢票到智能代理:Python自动化抢票技术深度探索
  • 2026 鸡肉粉优质供应企业推荐榜:渤海海洋进出口领衔,专注鸡肉粉、进口鸡肉粉、国产鸡肉粉、美国鸡肉粉全品类供应 - 海棠依旧大
  • 金融行情API对接指南:WebSocket实时订阅外汇/期货/数字货币(附代码示例)