globrex
Install
npm install globrex --saveCore Features
- 💪 extended globbing: transform advance
ExtGlobfeatures - 📦 simple: no dependencies
- 🛣️ paths: split paths into multiple
RegExpsegments
Usage
const globrex = require('globrex');
const result = globrex('p*uck')
// => { regex: /^p.*uck$/, string: '^p.*uck$', segments: [ /^p.*uck$/ ] }
result.regex.test('pluck'); // trueAPI
globrex(glob, options)
Type: function
Returns: Object
Transform globs intp regular expressions. Returns object with the following properties:
regex
Type: RegExp
JavaScript RegExp instance.
Note: Read more about how to use RegExp on MDN.
path
This property only exists if the option filepath is true.
Note:
filepathisfalseby default
path.segments
Type: Array
Array of RegExp instances seperated by /.
This can be usable when working with file paths or urls.
Example array could be:
[ /^foo$/, /^bar$/, /^([^\/]*)$/, '^baz\\.(md|js|txt)$' ]path.regex
Type: RegExp
JavaScript RegExp instance build for testign against paths.
The regex have different path seperators depending on host OS.
glob
Type: String
Glob string to transform.
options.extended
Type: Boolean
Default: false
Enable all advanced features from extglob.
Matching so called "extended" globs pattern like single character matching, matching ranges of characters, group matching, etc.
Note: Interprets
[a-d]as[abcd]. To match a literal-, include it as first or last character.
options.globstar
Type: Boolean
Default: false
When globstar is false globs like '/foo/*' are transformed to the following
'^\/foo\/.*$' which will match any string beginning with '/foo/'.
When the globstar option is true, the same '/foo/*' glob is transformed to
'^\/foo\/[^/]*$' which will match any string beginning with '/foo/' that does not have a '/' to the right of it. '/foo/*' will match: '/foo/bar', '/foo/bar.txt' but not '/foo/bar/baz' or '/foo/bar/baz.txt'.
Note: When globstar is
true,'/foo/**'is equivelant to'/foo/*'when globstar isfalse.
options.strict
Type: Boolean
Default: false
Be forgiving about mutiple slashes, like /// and make everything after the first / optional. This is how bash glob works.
options.flags
Type: String
Default: ''
RegExp flags (e.g. 'i' ) to pass to the RegExp constructor.
options.filepath
Type: Boolean
Default: false
Parse input strings as it was a file path for special path related features. This feature only makes sense if the input is a POSIX path like /foo/bar/hello.js or URLs.
When true the returned object will have an additional path object.
segment: Array containing aRegExpobject for each path segment.regex: OS specific file pathRegExp. Path seperator used is based on the operating system.globstar: Regex string used to test for globstars.
Note: Please only use forward-slashes in file path glob expressions Though windows uses either
/or\as its path separator, only/characters are used by this glob implementation. You must use forward-slashes only in glob expressions. Back-slashes will always be interpreted as escape characters, not path separators.
References
Learn more about advanced globbing here
License
MIT © Terkel Gjervig