0

URLが画像、Javaスクリプト、PDFなどであるかどうかを確認したい

文字列 url = "www.something.com/script/sample.js?xyz=xyz;

以下の正規表現は正常に動作しますが、xyz=zyz を使用しない場合のみです

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

$ を最後に削除して、.js が最後になるようにするための正規表現の要件を排除すると、false が返されます

4

4 に答える 4

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 に答える
0

.*(mov|jpg|gif|pdf|js).*$ファイル拡張子の後に任意のテキストを含めることができます。キャプチャ グループは、ファイル拡張子をキャプチャします。これはここで見ることができます。

于 2012-11-14T06:34:44.580 に答える
0

以下のように正規表現を使用します。

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

これは for に一致し、dot(.)その後に拡張子が続き、次で終了します?

1 つ目dot(.)は任意の文字に一致し、2 つ目は拡張子リストの直前にリテラルとしてmatch fordot(.)というプレフィックスが付いています。\\dot(.)

于 2012-11-14T06:35:38.653 に答える
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 に答える