Java 正则表达式提取图像链接

Java 正则表达式提取图像链接,java,regex,Java,Regex,我使用java.util.regex使用以下正则表达式从HTML文档中提取链接 互联网:   但它与链接不匹配,而是像贪婪的搜索一样,从mailto:开始,以最后一个链接结束。相同的表达式可以很好地用于内部的正则表达式测试程序 有什么提示吗?如果换行符位于文本行的末尾,则不会出现问题 现在我有了一个解释:转义再次使用反斜杠。使用HTML解析器不是更容易吗?如果转义是个问题,java就不会编译。事实上,即使是eclipse也能正确地找到正则表达式,但java却不能。逃避反斜杠的强制链接不是问题。我

我使用java.util.regex使用以下正则表达式从HTML文档中提取链接

互联网:   但它与链接不匹配,而是像贪婪的搜索一样,从mailto:开始,以最后一个链接结束。相同的表达式可以很好地用于内部的正则表达式测试程序


有什么提示吗?

如果换行符位于文本行的末尾,则不会出现问题


现在我有了一个解释:转义再次使用反斜杠。使用HTML解析器不是更容易吗?如果转义是个问题,java就不会编译。事实上,即使是eclipse也能正确地找到正则表达式,但java却不能。逃避反斜杠的强制链接不是问题。我只是删除了它们,以提供一个可在RegEx测试仪中测试的解决方案@stefanA您是如何在eclipse中测试它的?谢谢,这就清楚了。我刚刚发现,有Pattern.DOTALL甚至可以匹配,包括换行符。你也有一个技巧,我可以如何改变模式,使它只包括一个链接,我刚刚编辑了我的答案,并添加了一个工作模式。但是用正则表达式提取html确实是恶意的。这种模式可能在一种情况下有效,而另一种特殊情况则会失败。因此,html解析器是最佳选择。
private static final Pattern P = Pattern.compile("<a\\s.*?href=([^ >]+).*?<img\\s.*?src=([^ ]+)(.*?>.*?<\\/a>)");
private static final String TEXT = "<font size=\"4\">Mail              : </font><a href=\"mailto:c.bantz@pgt-gmbh.com\"><u><font size=\"4\" color=\"#0000ff\">s.weber@pgt-gmbh.com</font></u></a><br />"
    + "<br />"
    + "<font size=\"4\">Internet        : </font><a href=\"http://www.pgt-gmbh.com/\"><u><font size=\"4\" color=\"#0000ff\">http://www.pgt-gmbh.com</font></u></a><font size=\"4\"> </font><br />"
    + "<br />"
    + "<br />"
    + "<font size=\"4\"> </font><a class=\"domino-attachment-link\" style=\"display: inline-block; text-align: center\" href=\"/_dv/_dv/documents_DE.nsf/0/7fadd8be280a2e34c1257dfd00307098/$FILE/Anfrage.pdf\" title=\"Anfrage.pdf\"><img src=\"/_dv/_dv/documents_DE.nsf/0/7fadd8be280a2e34c1257dfd00307098/f_Text/0.5F66?OpenElement&FieldElemFormat=gif\" width=\"32\" height=\"32\" alt=\"Anfrage.pdf\" border=\"0\" /> - Anfrage.pdf</a>";
private static final String NEWLINE_TEXT = "<font size=\"4\">Mail              : </font><a href=\"mailto:c.bantz@pgt-gmbh.com\"><u><font size=\"4\" color=\"#0000ff\">s.weber@pgt-gmbh.com</font></u></a><br />\n"
    + "<br />\n"
    + "<font size=\"4\">Internet        : </font><a href=\"http://www.pgt-gmbh.com/\"><u><font size=\"4\" color=\"#0000ff\">http://www.pgt-gmbh.com</font></u></a><font size=\"4\"> </font><br />\n"
    + "<br />\n"
    + "<br />\n"
    + "<font size=\"4\"> </font><a class=\"domino-attachment-link\" style=\"display: inline-block; text-align: center\" href=\"/_dv/_dv/documents_DE.nsf/0/7fadd8be280a2e34c1257dfd00307098/$FILE/Anfrage.pdf\" title=\"Anfrage.pdf\"><img src=\"/_dv/_dv/documents_DE.nsf/0/7fadd8be280a2e34c1257dfd00307098/f_Text/0.5F66?OpenElement&FieldElemFormat=gif\" width=\"32\" height=\"32\" alt=\"Anfrage.pdf\" border=\"0\" /> - Anfrage.pdf</a>";

public static void main(String[] args) {
    Matcher m = P.matcher(TEXT);
    if (m.find()) {
        System.out.println(m.group());
    }
    m = P.matcher(NEWLINE_TEXT);
    if (m.find()) {
        System.out.println(m.group());
    }
}