使用Java正则表达式与* .jpg或* .gif

时间:2016-07-03 03:47:19

标签: java regex

[EDITED] 我正在使用Java正则表达式,我不想匹配一些文件。

我正在尝试:

String regexp = "https?:://[[\\S]&&[^\"]]+(?!.*(.ico|.jpg|.css)"

我有一个包含许多网站链接的列表,链接是:* .html,* .asp,* .jpg,* gif。我想使用java正则表达式匹配除* .jpg,* gif,* ico。

之外的所有内容

有人可以提出想法吗?

抱歉,我的英语不流利。 希望你能理解我。 感谢!!!

1 个答案:

答案 0 :(得分:0)

以下是程序小程序的示例,该程序将解析网站的匹配链接,但不包括特定扩展名。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexTest {

    public static void main(String[] args) {
        String regex = "(https?://[\\S^\"]+(?<!\\.ico|\\.jpg|\\.css))[\\s\"]";

        String test_string = "http://www.regular-   expressions.info/shorthand.html "
                + "http://www.regular-expressions.info/shorthand.html "
                + "http://www.regular-expressions.info/shorthand.css "                          
                + "http://www.regular-expressions.info/shorthand.ico "
                + "http://www.regular-expressions.info/shorthand.jpg "
                + "http://www.regular-expressions.info/shorthand.htm "
                + "http://www.regular-expressions.info/shorthand.jsp "
                + "http://www.regular-expressions.info/ ";


        Pattern pattern = Pattern.compile(regex);
        Matcher m = pattern.matcher(test_string);
        while (m.find()) {
            System.out.printf("Match: '%s'\n",  m.group(1));
        }
    }

}

结果如下:

Match: 'http://www.regular-expressions.info/shorthand.html'
Match: 'http://www.regular-expressions.info/shorthand.html'
Match: 'http://www.regular-expressions.info/shorthand.htm'
Match: 'http://www.regular-expressions.info/shorthand.jsp'
Match: 'http://www.regular-expressions.info/'