2012-02-17 14 views
0

logging.jarを返す正規表現です。パスにはさまざまなレベルの深度が含まれます。return jarファイル名

私は '。'を使用する必要があると思います。さまざまな量のスラッシュを処理する方法は不明ですか?どちらのテストケース以下

はlogging.jar返す必要があります

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

+0

あなたが唯一の正規表現で解決策をしたいですか? –

+0

@Sunil Kumar B M私はそのクリーナーだと思います。 –

+0

正規表現が唯一の解決策ではない場合、私はあなたのための簡単な解決策を持っています –

答えて

0

.*/([^\\.]*)\\..*
グループ1では、file.extensionの名前は重要ではありません。 だけjarファイルの名前を取得したい場合は、このパターンを使用します。
.*/([^\\.]*)\\.jar

.*は貪欲正規表現であり、それは、最後/まで.After /と一致しますが唯一のファイル名に拡張子であるとあなたその名前を取得する必要があります。 [^\\.]*も貪欲で、最後にドット(.)まで一致します。最後のドットが拡張区切り文字であるため、実際に必要なものです。正規表現のない

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でこれを行うことができます。新しいファイル(パス).getName()は同じものを返します。 – shift66

関連する問題