【正規表現】ファイル名やディレクトリだけをフルパスから検索する
ファイルのフルパス一覧みたいなテキストを加工するときに使う正規表現。
区切り文字ごとの正規表現
概要 | Windows | Unix |
---|---|---|
ファイル名だけ検索 | [^\\]+$ |
[^/]+$ |
ディレクトリだけ検索 | ^.*\\ |
^.*/ |
特定のディレクトリ以降だけ検索 | ディレクトリ名.*$ |
ディレクトリ名.*$ |
特定のディレクトリより後だけ検索 | (?<=ディレクトリ名\\).*$ |
(?<=ディレクトリ名/).*$ |
特定のディレクトリ以前だけ検索 | ^.*ディレクトリ名\\ |
^.*ディレクトリ名/ |
特定のディレクトリより前だけ検索 | .*\\(?=ディレクトリ名) |
.*/(?=ディレクトリ名) |
※「以降/以前」「より後/より前」の違いは、指定したディレクトリ名を含めるかどうか。
使用例
こんなテキストがあるとする。
C:\Users\regex\Documents\hoge.txt
C:\Users\regex\Documents\fuga\fuga.txt
C:\Users\regex\Documents\piyo\piyo\piyo.txt
フルパスの羅列からファイル名だけを消す
[^\\]+$
でファイル名だけを検索して空文字で置換すれば、ディレクトリパスだけを抽出できる。
C:\Users\regex\Documents\
C:\Users\regex\Documents\fuga\
C:\Users\regex\Documents\piyo\piyo\
フルパスの羅列からディレクトリだけを消す
^.*\\
でディレクトリだけを検索して空文字で置換すれば、ファイル名だけを抽出できる。
hoge.txt
fuga.txt
piyo.txt
フルパスの羅列から特定のディレクトリ以前だけを消す
^.*Documents\\
で特定ディレクトリまでを検索して空文字で置換すれば、特定ディレクトリより後のパスだけを抽出できる。
hoge.txt
fuga\fuga.txt
piyo\piyo\piyo.txt