Java 如何匹配正则表达式(不包括在内)?
我想获得介于(不包括)alt=“和”之间的字符串 下面是我的代码的一个小示例: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
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谢谢