URLが画像、Javaスクリプト、PDFなどであるかどうかを確認したい
文字列 url = "www.something.com/script/sample.js?xyz=xyz;
以下の正規表現は正常に動作しますが、xyz=zyz を使用しない場合のみです
".*(mov|jpg|gif|pdf|js)$"
$ を最後に削除して、.js が最後になるようにするための正規表現の要件を排除すると、false が返されます
私はこれの大ファンではありませんが、試してみてください:
.*\\.(mov|jpg|gif|pdf|js).*$
問題は、「our.moving.day」のようなものを受け入れることです。
そしてあなたのコードを投稿してください。猫の皮を剥ぐ方法は常に複数あり、正規表現ではなくコードに問題がある可能性があります。
また、正規表現テスターを試してみてください...そこにはたくさんのテスターがあります。私は大ファンです:
http://rubular.com/およびhttp://gskinner.com/RegExr/ (ただし、これらは主に php/ruby 用です)
.*(mov|jpg|gif|pdf|js).*$
ファイル拡張子の後に任意のテキストを含めることができます。キャプチャ グループは、ファイル拡張子をキャプチャします。これはここで見ることができます。
以下のように正規表現を使用します。
.*\\.(mov|jpg|gif|pdf|js)\\?
これは for に一致し、dot(.)
その後に拡張子が続き、次で終了します?
1 つ目dot(.)
は任意の文字に一致し、2 つ目は拡張子リストの直前にリテラルとしてmatch fordot(.)
というプレフィックスが付いています。\\
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.
}