glob pattern

来源:互联网 发布:windows打war包 编辑:程序博客网 时间:2024/06/13 02:03

节选自oracle官方文档

When the syntax is "glob" then the String representation of the path is matched using a limited pattern language that resembles regular expressions but with a simpler syntax. For example:

*.javaMatches a path that represents a file name ending in .java*.*Matches file names containing a dot*.{java,class}Matches file names ending with .java or .classfoo.?Matches file names starting with foo. and a single character extension/home/*/*Matches /home/gus/data on UNIX platforms/home/**Matches /home/gus and /home/gus/data on UNIX platformsC:\\*Matches C:\foo and C:\bar on the Windows platform (note that the backslash is escaped; as a string literal in the Java Language the pattern would be "C:\\\\*")

The following rules are used to interpret glob patterns:

  • The * character matches zero or more characters of a name component without crossing directory boundaries.

  • The ** characters matches zero or more characters crossing directory boundaries.

  • The ? character matches exactly one character of a name component.

  • The backslash character (\) is used to escape characters that would otherwise be interpreted as special characters. The expression \\ matches a single backslash and "\{" matches a left brace for example.

  • The [ ] characters are a bracket expression that match a single character of a name component out of a set of characters. For example, [abc] matches "a""b", or "c". The hyphen (-) may be used to specify a range so [a-z] specifies a range that matches from "a" to "z" (inclusive). These forms can be mixed so [abce-g] matches "a""b""c""e""f" or "g". If the character after the [ is a ! then it is used for negation so [!a-c] matches any character except "a""b", or "c".

    Within a bracket expression the *? and \ characters match themselves. The (-) character matches itself if it is the first character within the brackets, or the first character after the ! if negating.

  • The { } characters are a group of subpatterns, where the group matches if any subpattern in the group matches. The "," character is used to separate the subpatterns. Groups cannot be nested.

  • Leading period/dot characters in file name are treated as regular characters in match operations. For example, the "*" glob pattern matches file name ".login". The Files.isHidden(java.nio.file.Path) method may be used to test whether a file is considered hidden.

  • All other characters match themselves in an implementation dependent manner. This includes characters representing any name-separators.

  • The matching of root components is highly implementation-dependent and is not specified.

0 0
原创粉丝点击