2016-09-13 82 views
-1

我在Perl中工作,但我有一些問題,以切除其他文件夾名稱以留下最後兩個文件夾名稱。正則表達式選擇最後兩個文件夾路徑名稱

Trainings and Events 
General Office\Archive 
General Office\Office Opperations\Contacts 
General Office\Office Opperations\Office Procedures\How Tos 
public_html\Accordion\.svn\tmp\text-base 

我想刪除的文件夾路徑名稱,這樣的文件夾會落得像這樣爲每個最後兩個路徑名:

Trainings and Events 
General Office\Archive 
Office Opperations\Contacts 
Office Procedures\How Tos 
tmp\text-base 
Office Opperations\Contacts 

香港專業教育學院讀了一些其他計算器這表明過去兩年選擇了文件夾名稱,但我無法翻轉表達式。 (我會鏈接它,如果我能找到它)

我目前使用崇高文本3來測試我的表達式。

謝謝

回答

0

你想要的圖案是

s/.+\/(.+\/.+)$/$1/g 

它會搶在文件夾名稱的最後一位,並用它替換整個字符串。

0
(?:[^\\]*\\|^)[^\\]*$ 

你實際上想要「最多兩個」,因爲否則你不會抓住「訓練和事件」。爲了解決這個問題,我這兩種情況分別滿足:

  • 無論是文件夾名稱(任意數量的非反斜線),接着用斜線,或串
  • 另一個文件夾名稱
  • 完的啓動字符串
+0

那麼我應該使用grep將選擇放入數組? – cacartano

+0

您要求提供「最後兩個文件夾路徑名的正則表達式選擇」。答案就是這樣。我不知道你應該怎麼做。如果你想要一個數組的結果,那應該是個問題,不是?您也不指定數據是在文件中,還是在字符串中或數組中。因爲你的標籤,我只能假設你想在Perl中使用它。那些東西肯定會影響答案。 – Amadan

相關問題