【正規表現】ファイル名やディレクトリだけをパスから検索する

概要WindowsUnix
ファイル名だけ検索[^\\]+$[^/]+$
ディレクトリだけ検索^.*\\^.*/
特定のディレクトリ以降を検索ディレクトリ名.*$ディレクトリ名.*$
特定のディレクトリより後を検索(?<=ディレクトリ名\\).*$(?<=ディレクトリ名/).*$
特定のディレクトリ以前を検索^.*ディレクトリ名\\^.*ディレクトリ名/
特定のディレクトリより前を検索.*\\(?=ディレクトリ名).*/(?=ディレクトリ名)
※「以降/以前」「より後/より前」の違いは、指定したディレクトリ名を含めるかどうかです。

ファイルのフルパス一覧みたいなテキストを加工するときに使う正規表現です。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

矢野ヒロタ / 1987年生まれ。プログラマー。
趣味で作ったWebツールを公開しています。無料ですのでご自由にお使いください。ブログは技術ネタと見せかけてもっぱら妄想です。よしなに。
© HIROTA YANO