AntPath路径匹配规则
AntPath是一种用于路径匹配的模式语言,最初由Apache Ant项目引入,现在被广泛用于Spring框架等项目中。它提供了一种灵活的方式来匹配文件路径或URL路径。
基本匹配规则
-
?- 匹配任意单个字符"/t?st"匹配"/test"和"/tast",但不匹配"/teest"
-
*- 匹配任意数量的字符(不包括路径分隔符/)"/*.html"匹配所有在根目录下的.html文件"/resources/*"匹配/resources/下的所有路径
-
**- 匹配任意数量的字符,包括路径分隔符(用于跨目录匹配)"/resources/**"匹配/resources/及其所有子目录"/**/test"匹配任何位置的test路径
-
{}- 匹配一组模式中的任意一个(逗号分隔)"/{html,htm}"匹配"/html"或"/htm""/resources/*.{jpg,png,gif}"匹配特定图片格式
-
[]- 匹配指定范围内的单个字符"/web/[a-z].html"匹配/web/a.html到/web/z.html
特殊规则
- 默认区分大小写,但某些实现(如Spring)可以配置为不区分大小写
- 路径分隔符:通常使用
/,但在Windows系统中也能正确处理`` - 前缀匹配:
/public/**会匹配所有以/public/开头的路径 - 扩展名匹配:
*.html匹配所有以.html结尾的路径
示例
"/t?st.html"- 匹配test.html、tast.html,但不匹配toast.html"/static/**"- 匹配/static/下的所有路径,包括子目录"/resources/*.png"- 匹配/resources/目录下的所有PNG文件"/resources/**/*.jsp"- 匹配/resources/及其子目录下的所有JSP文件"/{img,vid}/**/*.{jpg,png}"- 匹配/img/或/vid/子目录下的JPG和PNG文件