# Filename > [Regular expression][mdn-regexp] to split a Windows filename.
## Usage ```javascript var reFilenameWindows = require( '@stdlib/regexp/filename-windows' ); ``` #### reFilenameWindows() Returns a [regular expression][mdn-regexp] to split a Windows filename. ```javascript var RE_FILENAME_WINDOWS = reFilenameWindows(); var parts = RE_FILENAME_WINDOWS.exec( 'C:\\foo\\bar\\index.js' ).slice(); /* returns [ 'C:\\foo\\bar\\index.js', // input value 'C:', // device '\\', // slash 'foo\\bar\\', // dirname 'index.js', // basename '.js' // extname ] */ ``` #### reFilenameWindows.REGEXP [Regular expression][mdn-regexp] to split a Windows filename. ```javascript var parts = reFilenameWindows.REGEXP.exec( 'C:\\foo\\bar\\home.html' ).slice(); /* returns [ 'C:\\foo\\bar\\home.html', 'C:' '\\', 'foo\\bar\\', 'home.html', '.html' ] */ ```
## Notes - When executed against dotfile filenames (e.g., `.gitignore`), the [regular expression][mdn-regexp] does **not** capture the basename as a filename extension. ```javascript var parts = reFilenameWindows.REGEXP.exec( '.bash_profile' ).slice(); /* returns [ '.bash_profile', '', '', '', '.bash_profile', '' ] */ parts = reFilenameWindows.REGEXP.exec( '.travis.yml' ).slice(); /* returns [ '.travis.yml', '', '', '', '.travis.yml', '.yml' ] */ ```
## Examples ```javascript var reFilenameWindows = require( '@stdlib/regexp/filename-windows' ); var RE_FILENAME_WINDOWS = reFilenameWindows(); var parts = RE_FILENAME_WINDOWS.exec( 'index.js' ).slice(); /* returns [ 'index.js', '', '', '', 'index.js', '.js' ] */ parts = RE_FILENAME_WINDOWS.exec( 'C:\\foo\\bar\\home.html' ).slice(); /* returns [ 'C:\\foo\\bar\\home.html', 'C:', '\\', 'foo\\bar\\', 'home.html', '.html' ] */ parts = RE_FILENAME_WINDOWS.exec( 'foo\\file.pdf' ).slice(); /* returns [ 'foo\\file.pdf', '', '', 'foo\\', 'file.pdf', '.pdf' ] */ parts = RE_FILENAME_WINDOWS.exec( 'beep\\boop.' ).slice(); /* returns [ 'beep\\boop.', '', '', 'beep\\', 'boop.', '.' ] */ parts = RE_FILENAME_WINDOWS.exec( '' ).slice(); /* returns [ '', '', '', '', '', '' ] */ parts = RE_FILENAME_WINDOWS.exec( '\\foo\\bar\\file' ).slice(); /* returns [ '\\foo\\bar\\file', '', '\\', 'foo\\bar\\', 'file', '' ] */ parts = RE_FILENAME_WINDOWS.exec( 'C:\\foo\\bar\\.gitignore' ).slice(); /* returns [ 'C:\\foo\\bar\\.gitignore', 'C:', '\\', 'foo\\bar\\', '.gitignore', '' ] */ ```