$ gnpm install zeptomatch
An absurdly small glob matcher that packs a punch.
The following syntax is supported:
Syntax | Description |
---|---|
* |
Matches any character, except for the path separator, zero or more times. |
** |
Matches any character zero or more times. If it doesn't span the entire length of a path segment it's interpreted as a * instead. |
? |
Matches any character, except for the path separator, one time. |
\ |
Matches the character after it in the glob literally. This is the escape operator. |
[abc] |
Matches any of the characters in the class one time. |
[a-z] |
Matches any of the characters in the range in the class one time. |
[^abc] |
Matches any character, except for the characters the class, and the path separator, o∏ne time. Aliased as [!abc] also. |
[^a-z] |
Matches any character, except for the characters in the range in the class, and the path separator, one time. Aliased as [!a-z] also. |
{foo,bar} |
Matches any of the alternations, which are separated by a comma, inside the braces. |
{01..99} |
Matches any of the numbers in the expanded range. Padding is supported and opt-in. |
{a..zz} |
Matches any of the strings in the expanded range. Upper-cased ranges are supported and opt-in. |
!glob |
Matches anything except the provided glob. Negations can only be used at the start of the glob. |
!!glob |
Matches the provided glob. Negations can only be used at the start of the glob. |
Additional features and details:
picomatch
, since 1000+ of its tests are being used by this library.Limitations:
[:alnum:]
) are not supported. Implementing them seems a bit out of scope for a "zepto"-level library.?(foo)
) are not supported. They might be in the future though.npm install --save zeptomatch
import zeptomatch from 'zeptomatch';
// Check if a glob matches a path
zeptomatch ( '*.js', 'abcd' ); // => false
zeptomatch ( '*.js', 'a.js' ); // => true
zeptomatch ( '*.js', 'a.md' ); // => false
zeptomatch ( '*.js', 'a/b.js' ); // => false
// Compile a glob to a regular expression
const re = zeptomatch.compile ( '*.js' ); // => /^[^/]*\.js$/s
// Escape a glob to a string that will be matched as is
const escaped = zeptomatch.escape ( '*.js' ); // => '\\*\\.js'
MIT © Fabio Spampinato
Copyright 2013 - present © cnpmjs.org | Home |