0

我正在尝试仅将 URL 上的文件扩展名与图像匹配。我有这个正则表达式:

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

我已经在几个网站上对此进行了测试,它匹配得很好。但是当我尝试在 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 回答