SIMPLE

javaのパス付ファイル名をパスとファイル名に分割する正規表現

ソリューション部グループ会にて表題のテーマでディスカッションをしました。

やりたいこと

下記画像のようなパス+ファイル名の一覧をパス部分とファイル名部分に分割したい。

サクラエディタ上で正規表現を用いた置換でこれを実現する。

結論

\\(?!.*\\)を\tに置換する。

その後置換された文字列をExcelに貼り付けることでパス部分の列とファイル名部分の列に分けられる。

解説

「(?!.*\\)」で行内で最後に出現した\以降を抽出する。

「(?!.XXX)」がXXXではないという条件を示す。そのため「(?!.*\\)」で「\で終わる文字列ではない」となり、行内で最後に出現した\以降が抽出される。

最初の「\\」で「\」が抽出される。

これらを組み合わせることで「\」のうち、行内最後に出現した「\」を検索できる。

検索された行内最後の「\」を「\t」で置換し、Excelに貼り付けることでパスとファイル名の列に分けることができる。

感想

ソリューション部グループ会にて、社内ブログに投稿する記事を作成するというテーマで本記事の作成を行った。

普段正規表現を利用する際は理屈まで深く考えることなく調べて出てきたものをそのまま使っているが、なぜそうなるのかまで考えると面白かった。

社内ブログへの投稿は自分含め多くの人がハードルが高い、もしくはよく分からないと考えているように思うが、手軽なアウトプットの場として利用していけば自身の理解が深まるのではないかと思う。

今回の投稿で自分の中では社内ブログへの投稿のハードルはある程度下がったので、今後何か良いテーマを思いついたらまた何か投稿をしてみたい。

坂田稜平