2016-08-18 59 views
-1

我有這個文件在這裏:使用正則表達式,如何獲取文件名?

\\prdflsrvcl2.unicreprd.local\Integracao-PRD\GestaoTangiveis\APD\FW_A_enviar_correio_electronico_Imagem_(384).jpg-1-52FFN8.msg 

正則表達式,我想這個部分:FW_A_enviar_correio_electronico_Imagem_(384).jpg-1-52FFN8.msg

我用正則表達式如下:

[[:alnum:]-_]+\.[a-zA-Z]*$ 

然而,我得到.jpg-1-52FFN8.msg而不是我想要的。

但是如果文件名是沒有的JPG前點,我會得到FW_A_enviar_correio_electronico_Imagem_(384),JPG,1-52FFN8.msg代替。

基本上,我想要擴展名的文件名。

謝謝。

+1

哪個規則你使用表達式引擎? – hek2mgl

+1

什麼是正則表達式? –

+0

您的編程語言是否沒有專門設計用於處理路徑的庫(組合,提取組件等),而不是用正則表達式搞亂? –

回答

1

只是下面的正則表達式嘗試:

[^\\]+$ 

它將所有字符匹配,從年底到\第一次出現。

例子:https://regex101.com/r/eJ8zG2/1

+0

爲什麼要使用捕獲組?此外,分隔符是'''',而不是'/' –

+0

@WiktorStribiżew您說得對。 – hsz

+0

這可能不適用於OP,因爲一些正則表達式風格不會識別這種模式。 –

0

您可以使用下面的正則表達式,並參照第一捕獲組是(.*)

/(?!.*\\)(.*)/g

匹配它後面沒有\

Example所有的東西

相關問題