2014-09-03 30 views
0

我一直在這一個卡住了一段時間。我需要從路徑末尾選擇第三個文件夾。正則表達式從結尾拿起第三個文件夾名稱

如果是這樣的路徑:

C:\ ColorBank \用戶\ Profiles文件\燈罩\ BIN \調試

我想提取結束第三個。

例如色調。

我想出了這個。

[^\\]+\\[^\\]+\\[^\\]+$ 

但它也是拿起最後兩個,例如,它正在返回我:Shades \ bin \ debug

有什麼建議嗎?

回答

3

您需要使用lookahead,以便它不會匹配上次的第一部分和第二部分。

[^\\]*(?=\\[^\\]*\\[^\\]*$) 

DEMO

OR

[^\\]+(?=\\[^\\]+\\[^\\]+$) 

DEMO

+0

感謝。爲我工作。我會研究Lookahead。似乎是幾乎所有正則表達式問題的關鍵。 – NotAgain 2014-09-03 00:50:08

1

你想捕捉的文本?

你可以用非貪心量詞來做到這一點(在+之後加?)。結果:(在你的榜樣,這個詞Shades)將被存儲在根據您的環境$1\1的文件夾名稱...

([^\\]+?)\\[^\\]+?\\[^\\]+?$ 
0

這裏更多的是一種動態的回答,在那裏你可以很容易地調整,以獲得第n發生

([^\\]+)(?=(?:\\[^\\]+){2}$) 

其中2 = n-1個
Demo

相關問題