0

我想检查一个 url 是否是图像、java 脚本、pdf 等

字符串 url = "www.something.com/script/sample.js?xyz=xyz;

下面的正则表达式工作正常,但只有 xyz=zyz

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

当我在最后删除 $ 以消除 .js 的正则表达式要求时,它会给出错误

4

4 回答 4

0

使用正则表达式如下:

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

这与dot(.)您的扩展名匹配,并由?

第一个dot(.)匹配任何字符,而第二个则在扩展列表之前以match for为dot(.)前缀。\\dot(.)

于 2012-11-14T06:35:38.653 回答
0

.*(mov|jpg|gif|pdf|js).*$允许您在文件扩展名之后有任何可选文本。捕获组捕获文件扩展名。你可以在这里看到这个。

于 2012-11-14T06:34:44.580 回答
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.
}
于 2012-11-14T06:41:28.927 回答
0

我不是这个的忠实粉丝,但请尝试:

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

问题是它会接受像“our.movi​​ng.day”这样的东西

并发布您的代码。给猫剥皮的方法总是不止一种,也许你的代码有问题,而不是正则表达式。

另外,尝试正则表达式测试器......那里有很多。我非常喜欢:

http://rubular.com/http://gskinner.com/RegExr/(但它们主要用于 php/ruby)

于 2012-11-14T06:55:06.987 回答