蚂蚁路径样式模式
Posted
技术标签:
【中文标题】蚂蚁路径样式模式【英文标题】:Ant path style patterns 【发布时间】:2011-02-26 11:43:27 【问题描述】:的规则是什么。
Ant 网站本身信息量惊人地不足。
【问题讨论】:
也许这个答案也会有帮助***.com/q/40886239/355438 【参考方案1】:spring-framework 中匹配的 Ant 样式路径模式:
映射使用以下规则匹配 URL:
?
匹配一个字符*
匹配零个或多个字符**
匹配路径中的零个或多个“目录”spring:[a-z]+
匹配正则表达式[a-z]+
作为名为“spring”的路径变量一些例子:
com/t?st.jsp
- 匹配 com/test.jsp 但也匹配com/tast.jsp
或com/txst.jsp
com/*.jsp
- 匹配com
目录中的所有.jsp
文件com/**/test.jsp
- 匹配com
路径下的所有test.jsp
文件org/springframework/**/*.jsp
- 匹配org/springframework path
下的所有.jsp
文件org/**/servlet/bla.jsp
- 匹配org/springframework/servlet/bla.jsp
但也匹配org/springframework/testing/servlet/bla.jsp
和org/servlet/bla.jsp
com/filename:\\w+.jsp
将匹配com/test.jsp
并将值test
分配给filename
变量
http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/util/AntPathMatcher.html
【讨论】:
有没有办法匹配一个蚂蚁表达式中的多个模式?像 /com/*, /com/**/test.jsp 在同一个表达式中? 这种模式 /WEB-INF/tiles-config/*-tiles-definition.xml 以 -tiles-definition.xml 结尾的所有文件对我不起作用,但同时 / WEB-INF/tiles-config/*.xml 有效。那么 * 匹配零个或多个字符是否正确?spring-framework-reference
中的解释很好地将其置于上下文中:https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-ann-requestmapping-uri-templates。
@chrismarx 您的示例中的逗号分隔语法适用于 Jenkins create-zip-file 步骤,该步骤还使用 Ant 样式模式来指定其 glob。
此外,您可以使用*varname
匹配零个或多个目录并将其分配给varname
变量(尽管这似乎特定于Spring)【参考方案2】:
我猜你的意思是如何使用path patterns
如果是关于是使用斜杠还是反斜杠,这些将被转换为执行时使用的平台上的路径分隔符。
【讨论】:
+1。另外,这里是如何从 Ant 手册导航到这部分文档:Table of Contents => "Concepts and Types" => [List of Types] left menu section => "Directory-based Tasks" => [模式] 页面部分.【参考方案3】:ANT Style Pattern Matcher
通配符
该实用程序使用三个不同的通配符。
+----------+-----------------------------------+
| Wildcard | Description |
+----------+-----------------------------------+
| * | Matches zero or more characters. |
| ? | Matches exactly one character. |
| ** | Matches zero or more directories. |
+----------+-----------------------------------+
【讨论】:
【参考方案4】:最受欢迎的答案@user11153
使用表格以获得更易读的格式。
映射使用以下规则匹配 URL:
+-----------------+---------------------------------------------------------+
| Wildcard | Description |
+-----------------+---------------------------------------------------------+
| ? | Matches exactly one character. |
| * | Matches zero or more characters. |
| ** | Matches zero or more 'directories' in a path |
| spring:[a-z]+ | Matches regExp [a-z]+ as a path variable named "spring" |
+-----------------+---------------------------------------------------------+
一些例子:
+------------------------------+--------------------------------------------------------+
| Example | Matches: |
+------------------------------+--------------------------------------------------------+
| com/t?st.jsp | com/test.jsp but also com/tast.jsp or com/txst.jsp |
| com/*.jsp | All .jsp files in the com directory |
| com/**/test.jsp | All test.jsp files underneath the com path |
| org/springframework/**/*.jsp | All .jsp files underneath the org/springframework path |
| org/**/servlet/bla.jsp | org/springframework/servlet/bla.jsp |
| also: | org/springframework/testing/servlet/bla.jsp |
| also: | org/servlet/bla.jsp |
| com/filename:\\w+.jsp | com/test.jsp & assign value test to filename variable |
+------------------------------+--------------------------------------------------------+
【讨论】:
【参考方案5】:正如@user11153 提到的,Spring 的AntPathMatcher 实现并记录了 Ant 样式路径模式匹配的基础知识。
此外,Java 7 的 nio API 添加了一些通过FileSystem.getPathMatcher 对基本模式匹配的内置支持
【讨论】:
以上是关于蚂蚁路径样式模式的主要内容,如果未能解决你的问题,请参考以下文章
三维路径规划基于matlab蚁群算法三维路径规划含Matlab源码 179期
路径规划基于matlab GUI多种蚁群算法栅格地图路径规划含Matlab源码 650期
带有路径变量和蚂蚁匹配器的 Spring Security 自定义方法