View source code
Display the source code in std/path.d from which this
page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a
Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Function std.path.globMatch
Matches a pattern against a path.
bool globMatch(CaseSensitive cs = CaseSensitive .osDefault, C, Range)
(
Range path,
const(C)[] pattern
) pure nothrow @safe
if (isForwardRange!Range && !isInfinite!Range && isSomeChar!(ElementEncodingType!Range) && !isConvertibleToString!Range && isSomeChar!C && is(immutable(C) == immutable(ElementEncodingType!Range)));
Some characters of pattern have a special meaning (they are meta-characters) and can't be escaped. These are:
* |
Matches 0 or more instances of any character. |
? |
Matches exactly one instance of any character. |
[ chars] |
Matches one instance of any character that appears between the brackets. |
[! chars] |
Matches one instance of any character that does not appear between the brackets after the exclamation mark. |
{ string1, string2, …} |
Matches either of the specified strings. |
Individual characters are compared using filenameCharCmp!cs
,
where cs
is an optional template parameter determining whether
the comparison is case sensitive or not. See the
filenameCharCmp
documentation for details.
Note that directory separators and dots don't stop a meta-character from matching further portions of the path.
Parameters
Name | Description |
---|---|
cs | Whether the matching should be case-sensitive |
path | The path to be matched against |
pattern | The glob pattern |
Returns
true
if pattern matches path, false
otherwise.
See also
Example
assert(globMatch("foo.bar", "*"));
assert(globMatch("foo.bar", "*.*"));
assert(globMatch(`foo/foo\bar`, "f*b*r"));
assert(globMatch("foo.bar", "f???bar"));
assert(globMatch("foo.bar", "[fg]???bar"));
assert(globMatch("foo.bar", "[!gh]*bar"));
assert(globMatch("bar.fooz", "bar.{foo,bif}z"));
assert(globMatch("bar.bifz", "bar.{foo,bif}z"));
version (Windows)
{
// Same as calling globMatch!(CaseSensitive.no)(path, pattern)
assert(globMatch("foo", "Foo"));
assert(globMatch("Goo.bar", "[fg]???bar"));
}
version (linux)
{
// Same as calling globMatch!(CaseSensitive.yes)(path, pattern)
assert(!globMatch("foo", "Foo"));
assert(!globMatch("Goo.bar", "[fg]???bar"));
}
Authors
Lars Tandle Kyllingstad, Walter Bright, Grzegorz Adam Hankiewicz, Thomas Kühne, Andrei Alexandrescu
License
Copyright © 1999-2022 by the D Language Foundation | Page generated by ddox.