2016-11-30 8 views
1

私は前にこれをやっていると宣誓していたかもしれませんが、やりません。ファイル名キャプチャフォームのパス

下のサンプルデータの各行からファイル名を行の先頭にコピーしようとしています。ただし、ファイル名を取得するために式にparathensisを追加すると、ファイル名が削除されます。私はいくつかのバリエーションを試しました。

正規表現Expresion

[^\\/:*?<>]+$ 

式は成功し、各ライン上のファイル名を取得します。

サンプルデータ

c:\Dir1\dir2\Samplefile.txt 
c:\Dir1\dir2\dir3\Sample file.txt 
c:\Dir1\dir2\Samplefile 
c:\Dir1\dir2\dir3\Sample file 
c:\Dir1\wp_movfiles_20160911024934.ini 
c:\Dir1\\dir2\wp_movfiles_20160911055222.ini 

願望は任意assitanceが大幅appricatedさ

Samplefile.txt c:\Dir1\dir2\Samplefile.txt 
Sample file.txt c:\Dir1\dir2\dir3\Sample file.txt 
Samplefile  c:\Dir1\dir2\Samplefile 
Sample file  c:\Dir1\dir2\dir3\Sample file 
wp_movfiles_20160911024934.ini  c:\Dir1\wp_movfiles_20160911024934.ini 
wp_movfiles_20160911055222.ini  c:\Dir1\\dir2\wp_movfiles_20160911055222.ini 

もたらします。ありがとうございました。

+0

私はこの質問を得ることはありません。正規表現https://www.regex101.com/r/gymK9t/1 – Aleksandar

+0

ですべてのファイル名を正しく取得してください。問題は、ファイル名と完全な行を取得するときです。彼らは\ 1と\ 2で参照することができます – user68650

答えて

4

私はあなたがこの正規表現を使用して逃げることができると思う:

.*\\(.*)$ 

これは貪欲、最終的にバックスラッシュを打つまで、左から右へのファイルパス内のすべてを消費します。その後、ファイル名でなければならない最終的なバックスラッシュの後ろにあるすべてのものを停止します。ここ

デモ:

Regex101

+0

あなたは100%正しいです! - どうして私がそんなに複雑になったのかわからない! (*。\\(。*))$ありがとうございました! – user68650

関連する問題