Glob
Globbing pathnames.
Wildcard pattern matcher implementing the same rules as https://www.man7.org/linux/man-pages/man7/glob.7.html
Note that wildcard patterns are not regular expressions, although they are a bit similar. First of all, they match filenames, rather than text, and secondly, the conventions are not the same: for example, in a regular expression '*' means zero or more copies of the preceding thing.
Pattern syntax:
A string is a wildcard pattern if it contains one of the characters '?', '*' or '['. Globbing is the operation that expands a wildcard pattern into the list of pathnames matching the pattern. Matching is defined by:
A '?' (not between brackets) matches any single character.
A '*' (not between brackets) matches any string, including the empty string.
A '/' in a pathname cannot be matched by a '?' or '*' wildcard, or by a range like "[.-0]". A range containing an explicit '/' character is syntactically incorrect.
An expression "[...]" where the first character after the leading '[' is not an '!' matches a single character, namely any of the characters enclosed by the brackets. The string enclosed by the brackets cannot be empty; therefore ']' can be allowed between the brackets, provided that it is the first character. (Thus, "[][!]" matches the three characters '[', ']' and '!'.)
There is one special convention: two characters separated by '-' denote a range. (Thus, "[A-Fa-f0-9]" is equivalent to "[ABCDEFabcdef0123456789]".) One may include '-' in its literal meaning by making it the first or last character between the brackets. (Thus, "[]-]" matches just the two characters ']' and '-', and "[--0]" matches the three characters '-', '.', '0', since '/' cannot be matched.)
Now that regular expressions have bracket expressions where the negation is indicated by a '^', POSIX has declared the effect of a wildcard pattern "[^...]" to be undefined.
An expression "[!...]" matches a single character, namely any character that is not matched by the expression obtained by removing the first '!' from it. (Thus, "[!]a-]" matches any single character except ']', 'a' and '-'.)
One can remove the special meaning of '?', '' and '[' by preceding them by a backslash, or, in case this is part of a shell command line, enclosing them in quotes. Between brackets these characters stand for themselves. Thus, "[[?]" matches the four characters '[', '?', '*' and ''.
Attributes
- Graph
-
- Supertypes
- Self type
-
Glob.type
Members list
Type members
Classlikes
A wildcard pattern matching any single character except path separator '/' character.
A wildcard pattern matching any single character except path separator '/' character.
Attributes
- Supertypes
-
trait SingleCharacterPatterntrait WildcardPatterntrait Patternclass Objecttrait Matchableclass AnyShow all
- Self type
A wildcard pattern matching anything but path separator '/' character.
A wildcard pattern matching anything but path separator '/' character.
Attributes
- Supertypes
-
trait Singletontrait Producttrait Mirrortrait Serializabletrait Producttrait Equalstrait WildcardPatterntrait Patternclass Objecttrait Matchableclass AnyShow all
- Self type
-
AnyStringPattern.type
A wildcard pattern matching anything, inluding path separator.
A wildcard pattern matching anything, inluding path separator.
Attributes
- Supertypes
-
trait Singletontrait Producttrait Mirrortrait Serializabletrait Producttrait Equalstrait WildcardPatterntrait Patternclass Objecttrait Matchableclass AnyShow all
- Self type
-
AnythingPattern.type
A wildcard pattern matching either class or range of characters.
A wildcard pattern matching either class or range of characters.
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait SingleCharacterPatterntrait WildcardPatterntrait Patternclass Objecttrait Matchableclass AnyShow all
Support for character classes and ranges.
Support for character classes and ranges.
Attributes
- Companion
- trait
- Supertypes
- Self type
-
CharacterCheck.type
Character check defined between brackets, either class or range.
Character check defined between brackets, either class or range.
Attributes
- Companion
- object
- Supertypes
- Known subtypes
Checks if the character is of any of the provided characters.
Checks if the character is of any of the provided characters.
The string cannot be empty; therefore ']' can be allowed, provided that it is the first character. (Thus, "][!" matches the three characters '[', ']' and '!'.)
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait CharacterCheckclass Objecttrait Matchableclass AnyShow all
Checks if the character is between provided range.
Checks if the character is between provided range.
There is one special convention: two characters separated by '-' denote a range. (Thus, "[A-Fa-f0-9]" is equivalent to "[ABCDEFabcdef0123456789]".) One may include '-' in its literal meaning by making it the first or last character between the brackets. (Thus, "[]-]" matches just the two characters ']' and '-', and "[--0]" matches the three characters '-', '.', '0', since '/' cannot be matched.)
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait CharacterCheckclass Objecttrait Matchableclass AnyShow all
Composite check nesting a sequence of positive checks.
Composite check nesting a sequence of positive checks.
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait CharacterCheckclass Objecttrait Matchableclass AnyShow all
A pattern consisting of a sequence of nested patterns.
A pattern consisting of a sequence of nested patterns.
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait Patternclass Objecttrait Matchableclass AnyShow all
A pattern matching literally, without any wildcards.
A pattern matching literally, without any wildcards.
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait Patternclass Objecttrait Matchableclass AnyShow all
Composite check nesting a sequence of negative checks.
Composite check nesting a sequence of negative checks.
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait CharacterCheckclass Objecttrait Matchableclass AnyShow all
A compiled representation of a glob pattern.
A compiled representation of a glob pattern.
Attributes
- Supertypes
- Known subtypes
-
object AnySingleCharacterPatternobject AnyStringPatternobject AnythingPatternclass BracketPatternclass CompositePatternclass LiteralPatterntrait SingleCharacterPatterntrait WildcardPatternShow all
A type of pattern matching single character only.
A type of pattern matching single character only.
Attributes
- Supertypes
- Known subtypes
-
object AnySingleCharacterPatternclass BracketPattern
A type of pattern with variable match length, which can possibly consume nothing or all the remaining input.
A type of pattern with variable match length, which can possibly consume nothing or all the remaining input.
Attributes
- Supertypes
- Known subtypes
-
object AnyStringPatternobject AnythingPatterntrait SingleCharacterPatternobject AnySingleCharacterPatternclass BracketPattern