我想檢查URL是否是一個圖像,Java腳本,PDF等正則表達式匹配網絡擴展
字符串URL =「www.something.com/script/sample.js?xyz=xyz;
下面的正則表達式工作正常,但只出XYZ = ZYZ
「*。(MOV | JPG | GIF | PDF | JS)$」
當我在結尾處,刪除$消除.js的正則表達式要求結束,但t它給出假
我想檢查URL是否是一個圖像,Java腳本,PDF等正則表達式匹配網絡擴展
字符串URL =「www.something.com/script/sample.js?xyz=xyz;
下面的正則表達式工作正常,但只出XYZ = ZYZ
「*。(MOV | JPG | GIF | PDF | JS)$」
當我在結尾處,刪除$消除.js的正則表達式要求結束,但t它給出假
.*(mov|jpg|gif|pdf|js).*$
允許您在文件擴展名之後有任何可選文本。捕獲組捕獲文件擴展名。你可以看到這個here。
使用正則表達式如下:
.*\\.(mov|jpg|gif|pdf|js)\\?
這爲dot(.)
相匹配,然後你的擴展和?
第一dot(.)
終止是匹配任何字符而dot(.)
前綴由\\
賽第二dot(.)
爲就在您的擴展名列表之前。
爲什麼不使用的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.
}
我不是這方面的一個大風扇,但嘗試:
.*\\.(mov|jpg|gif|pdf|js).*$
問題是它會接受諸如「our.moving.day」
之類的內容併發布您的代碼。總是有不止一種方式來剝皮貓,也許你的代碼有問題,而不是正則表達式。
另外,嘗試正則表達式測試人員...他們在那裏的一大堆。我是一個大風扇:
http://rubular.com/和http://gskinner.com/RegExr/(但它們大多爲PHP /紅寶石)
顯示了一些代碼,並在上下文 – xiaoyi
@xiaoyi語言給出。查看標籤。 –