0

URLのファイル拡張子だけを画像に一致させようとしています..私はこの正規表現を持っています:

(?<=\.)(jpe?g|png|gif|bmp|tga|tiff)$

これをいくつかのWebサイトでテストしたところ、うまく一致しました..しかし、Javaで使用しようとすると、..をエスケープするために\を追加しました。それ以上追加する必要はないと思いますか?しかし、これは機能していません:

Pattern extensionPat = Pattern.compile("(?<=\\.)(jpe?g|png|gif|bmp|tga|tiff)$", Pattern.CASE_INSENSITIVE);
    Matcher findExtension = extensionPat.matcher(imageURL);
    String extension = findExtension.group();

ここで、imageURL は「https://www.google.com/images/srpr/logo4w.png」です

同僚の勧めで、パイプも次のようにエスケープしようとしました。

Pattern extensionPat = Pattern.compile("(?<=\\.)(jpe?g\\|png\\|gif\\|bmp\\|tga\\|tiff)$", Pattern.CASE_INSENSITIVE);

$ と < をエスケープしようとしましたが、何もうまくいかないようです...

4

1 に答える 1

3

findExtension.find()最初に呼び出す必要があります。それ以外の場合findExtension.group()は何も返しません。

于 2013-04-09T18:08:50.133 に答える