Java从URL中剪切文件扩展名

3

我需要从像这样的URL中删除文件扩展名:

http://static.gazeta.ru/nm2012/fonts/light/pts_regular_caption.svg#PTSans-CaptionBold

http://2.cdn.echo.msk.ru/assets/../fonts/echo_font-v5.eot#iefix

我想获取“svg”和“eot”。我是这样做的(请注意,我不仅想避免“#”字符):
 String extension = path.substring(path.lastIndexOf(".") + 1) ;   //cut after dot path
     extension = extension.replaceAll("[^A-Za-z0-9]", ";");   // replace all special character on ";"

        if(extension.indexOf(";") > 0) {
            extension = extension.substring(0, extension.indexOf(";")); // cut extension before first spec. char
        }

但也许我可以更快地完成它?


2
使用 URI 类解析 URL 的各个部分,获取路径并按 / 分割,然后查找扩展名。 - nhahtdh
1个回答

1
你可以尝试这个,
Matcher m = Pattern.compile("[^/.]*\\.(\\w+)[^/]*$").matcher(s);
if(m.find())
{
System.out.println(m.group(1));
}

演示


这将会对像 example.com/#/path/do.nothing 这样的 URL 给出错误的结果。 - nhahtdh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接