2012-02-17 82 views
0

正則表達式返回logging.jar。路徑可以包含不同級別的深度。返回jar文件名

我想我需要使用'。'但我不確定如何處理不同數量的斜槓?

都低於測試用例應該返回logging.jar

C:/proj/test/tester/base/logging.jar C:/proj/test/tester/base/leveldeeper/logging.jar

+0

你想在正則表達式只解決? – 2012-02-17 11:25:21

+0

@Sunil Kumar B M我認爲它更清潔.... – 2012-02-17 11:27:33

+0

如果正則表達式不是唯一的解決方案,我有一個簡單的解決方案爲您 – 2012-02-17 11:30:26

回答

0

.*/([^\\.]*)\\..*
在組1中,您將獲得file.extension的名稱並不重要。 如果你想只對jar文件使用這個模式來獲得名稱:
.*/([^\\.]*)\\.jar

.*是一個貪婪的正則表達式,它會匹配直到最後/。經過/只有文件與擴展,你只是名稱需要得到它的名字。 [^\\.]*也是貪婪的,直到最後點(.),實際上你所需要的,因爲最後一個點是擴展分隔符。

0

/([^/]+\.jar)$/會給你的結果,第一個捕獲小組。

1

解決方案,而正則表達式

String path = "C:/proj/test/tester/base/leveldeeper/logging.jar"; 
String splitPath[] = path.split("/"); 

System.out.println("Jar File name: " + splitPath[splitPath.length - 1]); 
+1

它會輸出「logging.jar」,並且你正在使用一個沒有必要的數組!你可以用File來做到這一點。新的File(path).getName()將返回相同的結果。 – shift66 2012-02-17 11:51:07