需要从URL中提取文件名

amu*_*ser 4 java regex

我正在尝试从URL中提取具有某些特定扩展名的文件名.例如,我有一个像" https://abc.xyz.com/path/somefilename.xy " 的URL .我需要从上面的URL中提取"somefilename.xy",而不是其他内容.

基本上我需要在我的java程序中编写该代码

我在正则表达式中表现不佳,所以有人可以帮助我.

Kev*_*sen 6

您也可以在没有正则表达式的情况下执行此操作:

String url = "https://abc.xyz.com/path/somefilename.xy";
String fileName = url.substring(url.lastIndexOf('/') + 1);
// fileName is now "somefilename.xy"
Run Code Online (Sandbox Code Playgroud)

编辑(归功于@SomethingSomething):如果你还应该支持带参数的网址,比如https://abc.xyz.com/path/somefilename.xy?param1=blie&param2=bla,你可以使用它:

String url = "https://abc.xyz.com/path/somefilename.xy?param1=blie&param2=bla";
java.net.Url urlObj = new java.net.Url(url);
String urlPath = urlObj.getPath();
String fileName = urlPath.substring(urlPath.lastIndexOf('/') + 1);
// fileName is now "somefilename.xy"
Run Code Online (Sandbox Code Playgroud)

  • 无论如何 - 诀窍是添加两行:`URL urlObj = new URL(url);`然后`String urlPath = urlObj.getPath()`.然后在`urlPath`上应用你的`substring`解决方案会更强大 (2认同)