Package Exports
- matcher
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (matcher) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
matcher
Simple wildcard matching
Useful when you want to accept loose string input and regexes/globs are too convoluted.
Install
$ npm install matcher
Usage
const matcher = require('matcher');
matcher(['foo', 'bar', 'moo'], ['*oo', '!foo']);
//=> ['moo']
matcher(['foo', 'bar', 'moo'], ['!*oo']);
//=> ['bar']
matcher('moo', ['']);
//=> []
matcher('moo', []);
//=> []
matcher([''], ['']);
//=> ['']
matcher.isMatch('unicorn', 'uni*');
//=> true
matcher.isMatch('unicorn', '*corn');
//=> true
matcher.isMatch('unicorn', 'un*rn');
//=> true
matcher.isMatch('rainbow', '!unicorn');
//=> true
matcher.isMatch('foo bar baz', 'foo b* b*');
//=> true
matcher.isMatch('unicorn', 'uni\\*');
//=> false
matcher.isMatch('UNICORN', 'UNI*', {caseSensitive: true});
//=> true
matcher.isMatch('UNICORN', 'unicorn', {caseSensitive: true});
//=> false
matcher.isMatch(['foo', 'bar'], 'f*');
//=> true
matcher.isMatch(['foo', 'bar'], ['a*', 'b*']);
//=> true
matcher.isMatch('unicorn', ['tri*', 'UNI*'], {caseSensitive: true});
//=> false
matcher.isMatch('unicorn', ['']);
//=> false
matcher.isMatch('unicorn', []);
//=> false
matcher.isMatch([], 'bar');
//=> false
matcher.isMatch([], []);
//=> false
matcher.isMatch('', '');
//=> true
API
It matches even across newlines. For example, foo*r
will match foo\nbar
.
matcher(inputs, patterns, options?)
Accepts a string or an array of strings for both inputs
and patterns
.
Returns an array of inputs
filtered based on the patterns
.
matcher.isMatch(input, pattern, options?)
Accepts a string or an array of strings for both inputs
and patterns
.
Returns a boolean
of whether any given input
matches every given pattern
.
input
Type: string | string[]
String or array of strings to match.
options
Type: object
caseSensitive
Type: boolean
Default: false
Treat uppercase and lowercase characters as being the same.
Ensure you use this correctly. For example, files and directories should be matched case-insensitively, while most often, object keys should be matched case-sensitively.
pattern
Type: string | string[]
Use *
to match zero or more characters. A pattern starting with !
will be negated.
Benchmark
$ npm run bench
Related
- matcher-cli - CLI for this module
- multimatch - Extends
minimatch.match()
with support for multiple patterns
Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies.