正則表達式返回logging.jar。路徑可以包含不同級別的深度。返回jar文件名
我想我需要使用'。'但我不確定如何處理不同數量的斜槓?
都低於測試用例應該返回logging.jar
C:/proj/test/tester/base/logging.jar
C:/proj/test/tester/base/leveldeeper/logging.jar
正則表達式返回logging.jar。路徑可以包含不同級別的深度。返回jar文件名
我想我需要使用'。'但我不確定如何處理不同數量的斜槓?
都低於測試用例應該返回logging.jar
C:/proj/test/tester/base/logging.jar
C:/proj/test/tester/base/leveldeeper/logging.jar
.*/([^\\.]*)\\..*
在組1中,您將獲得file.extension的名稱並不重要。 如果你想只對jar文件使用這個模式來獲得名稱:
.*/([^\\.]*)\\.jar
.*
是一個貪婪的正則表達式,它會匹配直到最後/
。經過/
只有文件與擴展,你只是名稱需要得到它的名字。 [^\\.]*
也是貪婪的,直到最後點(.
),實際上你所需要的,因爲最後一個點是擴展分隔符。
/([^/]+\.jar)$/
會給你的結果,第一個捕獲小組。
解決方案,而正則表達式
String path = "C:/proj/test/tester/base/leveldeeper/logging.jar";
String splitPath[] = path.split("/");
System.out.println("Jar File name: " + splitPath[splitPath.length - 1]);
它會輸出「logging.jar」,並且你正在使用一個沒有必要的數組!你可以用File來做到這一點。新的File(path).getName()將返回相同的結果。 – shift66 2012-02-17 11:51:07
你想在正則表達式只解決? – 2012-02-17 11:25:21
@Sunil Kumar B M我認爲它更清潔.... – 2012-02-17 11:27:33
如果正則表達式不是唯一的解決方案,我有一個簡單的解決方案爲您 – 2012-02-17 11:30:26