无法在Java中使用正则表达式进行匹配

时间:2013-04-09 18:07:17

标签: java regex

我正在尝试将网址上的文件扩展名与图片匹配..我有这个正则表达式:

(?<=\.)(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);

我已经尝试转义$和&lt;,似乎没有任何工作......

1 个答案:

答案 0 :(得分:3)

您需要先调用findExtension.find(),否则findExtension.group()不会返回任何内容。