AntPath路径匹配规则

166 阅读1分钟

AntPath路径匹配规则

AntPath是一种用于路径匹配的模式语言,最初由Apache Ant项目引入,现在被广泛用于Spring框架等项目中。它提供了一种灵活的方式来匹配文件路径或URL路径。

基本匹配规则

  1. ?  - 匹配任意单个字符

    • "/t?st" 匹配 "/test" 和 "/tast",但不匹配 "/teest"
  2. *  - 匹配任意数量的字符(不包括路径分隔符/

    • "/*.html" 匹配所有在根目录下的.html文件
    • "/resources/*" 匹配/resources/下的所有路径
  3. **  - 匹配任意数量的字符,包括路径分隔符(用于跨目录匹配)

    • "/resources/**" 匹配/resources/及其所有子目录
    • "/**/test" 匹配任何位置的test路径
  4. {}  - 匹配一组模式中的任意一个(逗号分隔)

    • "/{html,htm}" 匹配"/html""/htm"
    • "/resources/*.{jpg,png,gif}" 匹配特定图片格式
  5. []  - 匹配指定范围内的单个字符

    • "/web/[a-z].html" 匹配/web/a.html/web/z.html

特殊规则

  • 默认区分大小写,但某些实现(如Spring)可以配置为不区分大小写
  • 路径分隔符:通常使用/,但在Windows系统中也能正确处理``
  • 前缀匹配/public/**会匹配所有以/public/开头的路径
  • 扩展名匹配*.html匹配所有以.html结尾的路径

示例

  1. "/t?st.html" - 匹配test.htmltast.html,但不匹配toast.html
  2. "/static/**" - 匹配/static/下的所有路径,包括子目录
  3. "/resources/*.png" - 匹配/resources/目录下的所有PNG文件
  4. "/resources/**/*.jsp" - 匹配/resources/及其子目录下的所有JSP文件
  5. "/{img,vid}/**/*.{jpg,png}" - 匹配/img//vid/子目录下的JPG和PNG文件