2013-08-26 25 views
1

我有一大堆的文件,一些示例如下:正則表達式來獲得最後一個點後的文件名的一部分沒有擴展

/foo1/foo2/bar1.bar2.bar3.answer.jar 

/foo1/bar1.bar2.answer.jar 

/foo1/foo2/answer.jar 

,併爲以上所有的,我想匹配「正則表達式回答'。換句話說,我正在尋找文件的別名,這是文件名的最後一個點後面的一部分(或文件名本身,如果沒有點)和文件擴展名(.jar可以保證在這裏使其更簡單)剝離。

我知道我可以用一個更簡單的正則表達式來分割值,然後得到第二個最後一個,但在這種情況下,我構建了一個後端的東西,理想情況下需要一個正則表達式在給定文件類型的配置定義中定義,並將別名分出來,這可能與其他文件類型不同。

是的,我是過度工程。 :)

任何想法?

回答

1

以下的正則表達式應該爲你工作:

[^/.]+(?=\.jar$) 

如果使用Javascript或類似的味道,其中/是正則表達式的分隔符,那麼你需要逃避/這樣的:

[^\/.]+(?=\.jar$) 
1

您可以使用以下正則表達式:(假設答案部分不包含./

[/\.]([^/\.]+)\.jar 

第一個捕獲組是要什麼樣的一部分。

+0

+1我已經測試它。好答案! –

+0

輸入爲「answer.jar」時失敗 – anubhava

相關問題