2012-11-14 47 views
0

我想檢查URL是否是一個圖像,Java腳本,PDF等正則表達式匹配網絡擴展

字符串URL =「www.something.com/script/sample.js?xyz=xyz;

下面的正則表達式工作正常,但只出XYZ = ZYZ

「*。(MOV | JPG | GIF | PDF | JS)$」

當我在結尾處,刪除$消除.js的正則表達式要求結束,但t它給出假

+0

顯示了一些代碼,並在上下文 – xiaoyi

+0

@xiaoyi語言給出。查看標籤。 –

回答

0

.*(mov|jpg|gif|pdf|js).*$允許您在文件擴展名之後有任何可選文本。捕獲組捕獲文件擴展名。你可以看到這個here

0

使用正則表達式如下:

.*\\.(mov|jpg|gif|pdf|js)\\? 

這爲dot(.)相匹配,然後你的擴展和?

第一dot(.)終止是匹配任何字符而dot(.)前綴由\\賽第二dot(.)爲就在您的擴展名列表之前。

0

爲什麼不使用的java.net.URL解析URL字符串,就可能避免很多不匹配的問題:

try { 
    URL url = new URL(urlString); 
    String filename = url.getFile(); 
    // now test if the filename ends with your desired extensions. 
} catch (Exception e) { 
    // This case the url cannot be parsed. 
} 
0

我不是這方面的一個大風扇,但嘗試:

.*\\.(mov|jpg|gif|pdf|js).*$ 

問題是它會接受諸如「our.movi​​ng.day」

之類的內容併發布您的代碼。總是有不止一種方式來剝皮貓,也許你的代碼有問題,而不是正則表達式。

另外,嘗試正則表達式測試人員...他們在那裏的一大堆。我是一個大風扇:

http://rubular.com/http://gskinner.com/RegExr/(但它們大多爲PHP /紅寶石)