maximatch

0.1.0 • Public • Published

maximatch Build Status

Extends multimatch() with support for filter functions and regular expressions

Install

 
$ npm install --save maximatch

Usage

var maximatch = require('maximatch');
 
maximatch(['unicorn', 'cake', 'rainbows'], ['*', '!cake']);
//=> ['unicorn', 'rainbows']
 
maximatch(['unicorn', 'cake', 'rainbows'], function(path) { return path.length > 4; });
//=> ['unicorn', 'rainbows']
 
maximatch(['unicorn', 'cake', 'rainbows'], /^[^k]+$/);
//=> ['unicorn', 'rainbows']
 
maximatch(['unicorn', 'cake', 'rainbows'], [function(path) { return path.charAt(0) === 'u'; }, /w/]);
//=> ['unicorn', 'rainbows']

See the tests for more usage examples and expected matches.

API

Same as minimatch.match() except for pattern also accepting a filter function, a regular expression, or an array that can contain globs, filter functions and regular expressions.

var results = maximatch(paths, patterns);

The return value is an array of matching paths.

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

See globby if you need to match against the filesystem instead of a list.

License

MIT © Sindre Sorhus, Jon Schlinkert, Tim Kendrick

Dependencies (4)

Dev Dependencies (2)

Package Sidebar

Install

npm i maximatch

Weekly Downloads

185,868

Version

0.1.0

License

MIT

Last publish

Collaborators

  • timkendrick