Glob to regular expression with support for extended globs
npm install globrex
```
npm install globrex --save
- 💪 extended globbing: transform advance ExtGlob featuresRegExp
- 📦 simple: no dependencies
- 🛣️ paths: split paths into multiple segments
`js
const globrex = require('globrex');
const result = globrex('p*uck')
// => { regex: /^p.uck$/, string: '^p.uck$', segments: [ /^p.*uck$/ ] }
result.regex.test('pluck'); // true
`
Type: functionObject
Returns:
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: filepath is false by 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:
`js`
[ /^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.
Type: String
Glob string to transform.
Type: Booleanfalse
Default:
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.
Type: Booleanfalse
Default:
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 is false.
Type: Booleanfalse
Default:
Be forgiving about mutiple slashes, like /// and make everything after the first / optional. This is how bash glob works.
Type: String''
Default:
RegExp flags (e.g. 'i' ) to pass to the RegExp constructor.
Type: Booleanfalse
Default:
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 a RegExp object for each path segment.regex
- : OS specific file path RegExp. 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.
Learn more about advanced globbing here
- mywiki.wooledge.org/glob
- linuxjournal
MIT © Terkel Gjervig