我如何正则表达式匹配(非包容性)?

时间:2016-02-04 08:39:07

标签: java regex

我想得到(不包括)之间的字符串:alt ="和" 以下是我的代码的一小部分示例:

Pattern p2 = compile("alt=\"(.*?)\");
Matcher m2 = p2.matcher(result);
while (m2.find()) {
    names.add(m2.group());
}

输出例如:alt =" Harry Potter"
当我希望输出只是:哈利波特

1 个答案:

答案 0 :(得分:1)

您的代码有拼写错误(compile中缺少双引号),您需要访问的论坛是第1组(使用compile("alt=\"(.*?)\"")m2.group(1))。

您应该考虑使用HTML解析器从HTML获取值,例如jsoup。这是一种通过它获得所需内容的方法:

Document doc = Jsoup.parse(html_contents);
for (Element element : doc.getAllElements())
{
    for (Attribute attribute : element.attributes())
    {
        if(attribute.getKey().equalsIgnoreCase("alt"))
        {
            names.add(attribute.getValue());
        }
    }
}