sindresorhus / Multimatch
Licence: mit
Extends minimatch.match() with support for multiple patterns
Stars: ✭ 246
Programming Languages
javascript
184084 projects - #8 most used programming language
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.
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].