正規表現を使ってファイルパスからファイル名のみ取得する方法

プログラミング
・ファイルパス(フルパス/絶対パス)から、フォルダパス(ディレクトリパス)部分を削除し、ファイル名のみ取得したい。
・ファイルパスの一覧表はあるが、フォルダパス部分が不要なため、ファイル名だけを残して一覧表を作成したい。

上記の悩みを抱える方に、正規表現を用いた文字列置換による方法をお教えします。
サクラエディタなどの正規表現を用いた置換に対応したテキストエディタがあれば実施できます。

本記事の方法を実施すれば、ほんの数秒でファイルパスからフォルダパス部分を削除して、ファイル名のみを取得することができます。

よければ参考にしてみてください。

 

サクラエディタで正規表現を用いた文字列置換により ファイルパスの一覧からフォルダパス部分を削除してファイル名のみ取得する方法

使用したもの
・サクラエディタ

 

実施手順

1. サクラエディタでファイルパスの一覧が記載されているテキストファイルを開く。

 

2. メニューバーの「検索」をクリックし、表示されたメニューから「置換」をクリックする(「Ctrl」キー + 「R」キー でも可)。


 

3. 表示された「置換」ダイアログの内容を下記のように設定にし、「すべて置換」ボタンをクリックする。

・正規表現:チェックボックスにチェックを付ける
・置換前:「.*\\」と入力する(環境によってはバックスラッシュ「\」が、円マーク「\」で表示されます。)
・置換後:何も入力せず空欄にする。
・置換対象:「選択文字」を選択する。
・範囲:「ファイル全体」を選択する。

 

4. ファイルパスからフォルダパス部分が削除され、ファイル名のみが残される。

 

以上です。
みなさんいかがでしたか?とても簡単に実施できましたよね?

 

正規表現を用いた文字列置換の詳細説明

手順3で置換前の入力ボックスに「.*\\」と入力しましたが、ここで正規表現を用いています。
正規表現で用いられる、特殊な意味を持つ文字や記号のことをメタ文字といいます。
今回は以下の3つのメタ文字を使いました。

・ドット「.」
・アスタリスク「*」
・バックスラッシュ「\」(または円マーク「\」)

1文字目のドット「.」は、「任意の1文字(何でもいい1文字)」を表します。
2文字目のアスタリスク「*」は、「直前の文字の0個以上の繰り返し」を意味します。
つまり、「.*」は、「任意の文字が0個以上つながった文字列」ということになります。

3, 4文字目の2個連続したバックスラッシュ「\\は、1個のバックスラッシュ文字「\を表します。
バックスラッシュは、その直後の特殊な意味を持つメタ文字を無効化(エスケープ)し、普通の文字として認識されるようにはたらきます。
つまり、3文字目のバックスラッシュは、4文字目のバックスラッシュがメタ文字ではなく、普通の「バックスラッシュ文字」として認識されるようにします。

以上をまとめると、「.*\\」に一致する文字列は、大きく分けて以下の2種類になります。

\(バックスラッシュのみ(バックスラッシュの前に文字列なし))
・~\(~は任意の文字列)

つまり、下図の黄色で示した「ファイルパスの先頭からファイル名の直前のバックスラッシュまでの文字列」が、置換後に空欄になる、すなわち削除されます。


 

ここまで読んだくださってありがとうございました。
本記事の内容が、みなさんのお仕事(業務)のお役に立てるものだったらうれしいです。
今後も引き続き有益な情報を発信できるように頑張ります。




タイトルとURLをコピーしました