Filename

Regular expression to split a POSIX filename.

Usage

var reFilenamePosix = require( '@stdlib/regexp/filename-posix' );

reFilenamePosix()

Returns a regular expression to split a POSIX filename.

var RE_FILENAME_POSIX = reFilenamePosix();
var parts = RE_FILENAME_POSIX.exec( '/foo/bar/index.js' ).slice();
/* returns
    [
        '/foo/bar/index.js',  // input value
        '/',                  // root
        'foo/bar/',           // dirname
        'index.js',           // basename
        '.js'                 // extname
    ]
*/

reFilenamePosix.REGEXP

Regular expression to split a POSIX filename.

var parts = reFilenamePosix.REGEXP.exec( '/foo/bar/index.js' ).slice();
/* returns
    [
        '/foo/bar/index.js',  // input value
        '/',                  // root
        'foo/bar/',           // dirname
        'index.js',           // basename
        '.js'                 // extname
    ]
*/

Notes

  • When executed against dotfile filenames (e.g., .gitignore), the regular expression does not capture the basename as a filename extension.

    var parts = reFilenamePosix.REGEXP.exec( '.bash_profile' ).slice();
    /* returns
      [
          '.bash_profile',
          '',
          '',
          '.bash_profile',
          ''
      ]
    */
    
    parts = reFilenamePosix.REGEXP.exec( '.travis.yml' ).slice();
    /* returns
      [
          '.travis.yml',
          '',
          '',
          '.travis.yml',
          '.yml'
      ]
    */
    

Examples

var reFilenamePosix = require( '@stdlib/regexp/filename-posix' );

var RE_FILENAME_POSIX = reFilenamePosix();
var parts = RE_FILENAME_POSIX.exec( 'index.js' ).slice();
/* returns
    [
        'index.js',
        '',
        '',
        'index.js',
        '.js'
    ]
*/

parts = RE_FILENAME_POSIX.exec( '/foo/bar/home.html' ).slice();
/* returns
    [
        '/foo/bar/home.html',
        '/',
        'foo/bar/',
        'home.html',
        '.html'
    ]
*/

parts = RE_FILENAME_POSIX.exec( 'foo/file.pdf' ).slice();
/* returns
    [
        'foo/file.pdf',
        '',
        'foo/',
        'file.pdf',
        '.pdf'
    ]
*/

parts = RE_FILENAME_POSIX.exec( 'beep/boop.' ).slice();
/* returns
    [
        'beep/boop.',
        '',
        'beep/',
        'boop.',
        '.'
    ]
*/

parts = RE_FILENAME_POSIX.exec( '' ).slice();
/* returns
    [
        '',
        '',
        '',
        '',
        ''
    ]
*/

parts = RE_FILENAME_POSIX.exec( '/foo/bar/file' ).slice();
/* returns
    [
        '/foo/bar/file',
        '/',
        'foo/bar/',
        'file',
        ''
    ]
*/

parts = RE_FILENAME_POSIX.exec( '/foo/bar/.gitignore' ).slice();
/* returns
    [
        '/foo/bar/.gitignore',
        '/',
        'foo/bar/',
        '.gitignore',
        ''
    ]
*/
Did you find this page helpful?