Regex: Filename & Directory
Tool
| Summary | Windows | Unix |
|---|---|---|
| File name | [^\\]+$ | [^/]+$ |
| Directories | ^.*\\ | ^.*/ |
| Since a specific directory | directory.*$ | directory.*$ |
| After a specific directory | (?<=directory\\).*$ | (?<=directory/).*$ |
| Until a specific directory | ^.*directory\\ | ^.*directory/ |
| Before a specific directory | .*\\(?=directory) | .*/(?=directory) |
How to use
This is a regular expression that matches part of a file path. Only file names, only directories, only after a specific directory, etc.
These are useful when processing text such as a list of full paths to files; note that Windows and Unix-like systems use different delimiters, so the regular expressions will be different.
Regex Usage Examples
Suppose you have the following text.
C:\Users\regex\Documents\foo.txt
C:\Users\regex\Documents\bar\baz.txt
C:\Users\regex\Documents\qux\qux\qux.txt
Removing filename from path:
You can extract only directory paths by using [^\]+$ to search only for file names and replacing them with empty characters.
C:\Users\regex\Documents\
C:\Users\regex\Documents\bar\
C:\Users\regex\Documents\qux\qux\
Removing directory from path:
You can extract only file names by using ^.*\\ to search only for directory paths and replacing them with empty characters.
foo.txt
baz.txt
qux.txt
Removing only before a specific directory from path:
Search up to a specific directory with ^.*Documents\\ and replace with an empty string to extract only the paths after the specific directory.
foo.txt
bar\baz.txt
qux\qux\qux.txt