multimatch
Extends
minimatch.match()
with support for multiple patterns
Install
$ npm install multimatch
Usage
const multimatch = require('multimatch');
multimatch(['unicorn', 'cake', 'rainbows'], ['*', '!cake']);
//=> ['unicorn', 'rainbows']
See the tests for more usage examples and expected matches.
API
multimatch(paths, patterns, options?)
Returns an array of matching paths in the order of input paths.
paths
Type: string | string[]
Paths to match against.
patterns
Type: string | string[]
Globbing patterns to use. For example: ['*', '!cake']
. See supported minimatch
patterns.
options
Type: object
See the minimatch
options.
How multiple patterns work
Positive patterns (e.g. foo
or *
) add to the results, while negative patterns (e.g. !foo
) subtract from the results.
Therefore a lone negation (e.g. ['!foo']
) will never match anything – use ['*', '!foo']
instead.
Globbing patterns
Just a quick overview.
*
matches any number of characters, but not/
?
matches a single character, but not/
**
matches any number of characters, including/
, as long as it's the only thing in a path part{}
allows for a comma-separated list of "or" expressions!
at the beginning of a pattern will negate the match
Related
Get professional support for this package with a Tidelift subscription
Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies.
Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies.