Ant path style patterns

JavaPathAntPattern Matching

Java Problem Overview


What are the rules for Ant path style patterns.

The Ant site itself is surprisingly uninformative.

Java Solutions


Solution 1 - Java

Ant-style path patterns matching in [tag:spring-framework]:

>The mapping matches URLs using the following rules: > >- ? matches one character >- * matches zero or more characters >- ** matches zero or more 'directories' in a path >- {spring:[a-z]+} matches the regexp [a-z]+ as a path variable named "spring" > >Some examples: > >- com/t?st.jsp - matches com/test.jsp but also com/tast.jsp or com/txst.jsp >- com/*.jsp - matches all .jsp files in the com directory >- com/**/test.jsp - matches all test.jsp files underneath the com path >- org/springframework/**/*.jsp - matches all .jsp files underneath the org/springframework path >- org/**/servlet/bla.jsp - matches org/springframework/servlet/bla.jsp but also org/springframework/testing/servlet/bla.jsp and org/servlet/bla.jsp >- com/{filename:\\w+}.jsp will match com/test.jsp and assign the value test to the filename variable

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/util/AntPathMatcher.html

Solution 2 - Java

I suppose you mean how to use path patterns

If it is about whether to use slashes or backslashes these will be translated to path-separators on the platform used during execution-time.

Solution 3 - Java

ANT Style Pattern Matcher

Wildcards

The utility uses three different wildcards.

+----------+-----------------------------------+
| Wildcard |            Description            |
+----------+-----------------------------------+
| *        | Matches zero or more characters.  |
| ?        | Matches exactly one character.    |
| **       | Matches zero or more directories. |
+----------+-----------------------------------+

Solution 4 - Java

Most upvoted answer by @user11153 using tables for a more readable format.


The mapping matches URLs using the following rules:

+-----------------+---------------------------------------------------------+
| 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" |
+-----------------+---------------------------------------------------------+

Some examples:

+------------------------------+--------------------------------------------------------+
| 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  |
+------------------------------+--------------------------------------------------------+

Solution 5 - Java

As @user11153 mentioned, Spring's AntPathMatcher implements and documents the basics of Ant-style path pattern matching.

In addition, Java 7's nio APIs added some built in support for basic pattern matching via [FileSystem.getPathMatcher][2]

[2]: https://docs.oracle.com/javase/7/docs/api/java/nio/file/FileSystem.html#getPathMatcher(java.lang.String) "FileSystem.getPathMatcher"

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMDKView Question on Stackoverflow
Solution 1 - Javauser11153View Answer on Stackoverflow
Solution 2 - JavastackerView Answer on Stackoverflow
Solution 3 - JavaA JakharView Answer on Stackoverflow
Solution 4 - JavaKostas MinaidisView Answer on Stackoverflow
Solution 5 - JavaromearaView Answer on Stackoverflow