2015-07-29 3 views
3

мне нужно вырезать расширение файла из URL-адресов, как это:ява расширение файла вырезать из 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

Вы можете попробовать это,

Matcher m = Pattern.compile("[^/.]*\\.(\\w+)[^/]*$").matcher(s); 
if(m.find()) 
{ 
System.out.println(m.group(1)); 
} 

DEMO

+0

Это приведет к неправильному результату для URL-адреса, например 'example.com/#/path/do.nothing' – nhahtdh

Смежные вопросы