Java 如何匹配正则表达式(不包括在内)?

Java 如何匹配正则表达式(不包括在内)?,java,regex,Java,Regex,我想获得介于(不包括)alt=“和”之间的字符串 下面是我的代码的一个小示例: Pattern p2 = compile("alt=\"(.*?)\"); Matcher m2 = p2.matcher(result); while (m2.find()) { names.add(m2.group()); } 输出例如:alt=“Harry Potter” 当我希望输出为:Harry Potter时,您的代码有一个输入错误(在编译时缺少双引号),您需要访问的组是组1(使用编译时的com

我想获得介于(不包括)alt=“和”之间的字符串 下面是我的代码的一个小示例:

Pattern p2 = compile("alt=\"(.*?)\");
Matcher m2 = p2.matcher(result);
while (m2.find()) {
    names.add(m2.group());
}
输出例如:alt=“Harry Potter”
当我希望输出为:Harry Potter时,您的代码有一个输入错误(在编译时缺少双引号),您需要访问的组是组1(使用编译时的
compile(“alt=\”(.*?))
m2.group(1)

您应该考虑使用HTML解析器从HTML获取值,如。以下是一种获取所需信息的方法:

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());
        }
    }
}

使用
compile(“alt=\”(.*?\)
m2.group(1)
,但要解析HTML,最好使用一些HTML解析器。或者可以使用lookaround:
(?Brilliant@wiktor谢谢