public static void main(String[] args) throws Exception {
String str ="长了炒作的风气,不利于茅台酒的长期价格稳定。\n" +
"<IMAGE SRC=\"http://www.886.cn/attpic_brief.jpg\" >\n" +
" 资本市场一路攀升\n" +
" 事实上,疫情期间白酒一度停摆,进入6月的白酒板块如久旱逢甘霖,整体涨幅也十分可观。其中,五粮液、泸州老窖今日股价一路冲高至185.1元和100.23元,且五粮液总市值已突破7000亿。但有证券分析人士透露,此次白酒板块大涨的背后,还需注意“流动性推动泡沫化”的可能。\n" +
"<img src=\"http://www.886.cn/attpic_brief.jpg\" ></img>\n" +
" 终端市场原价难寻\n" +
" 即使终端市场价格飞奔,飞天茅台也依旧是一瓶难求。对此,有业内人士表示,现在能喝茅台,对于很多人来说已是一种身份、面子的象征,随着逢年过节宴请数量的增加,越来越多的人开始在酒桌上喝茅台,因此导致市场的需求旺盛,但茅台的酒产量有限,其中有相当一部分会作为基酒存储,但市场的需求在不断被放大,供需关系导致茅台一瓶难求。" +
"<IMG SRC=\"http://www.886.cn/attpic_brief.jpg\">\n";
// 标签符号转换HtmlUtil.unescape()
getMatchString(HtmlUtil.unescape(str));
getImgSrc(HtmlUtil.unescape(str));
}
public static List<String> getMatchString(String content) {
List<String> pics = new ArrayList<>();
// 标签大小写区分 Pattern.CASE_INSENSITIVE
Pattern compile = Pattern.compile("<(IMG|IMAGE)(.*?)(>|/>|</IMG>)", Pattern.CASE_INSENSITIVE);
Matcher matcher = compile.matcher(content);
while (matcher.find()) {
String img = matcher.group();
pics.add(img);
System.out.println("====IMG==="+img);
}
System.out.println( "====PICS===="+pics);
return pics;
}
结果:
====IMG===<IMAGE SRC="http://www.886.cn/attpic_brief.jpg" >
====IMG===<img src="http://www.886.cn/attpic_brief.jpg" >
====IMG===<IMG SRC="http://www.886.cn/attpic_brief.jpg">
====PICS====[<IMAGE SRC="http://www.886.cn/attpic_brief.jpg" >, <img src="http://www.886.cn/attpic_brief.jpg" >, <IMG SRC="http://www.886.cn/attpic_brief.jpg">]
public static List<String> getImgSrc(String content) {
List<String> list = new ArrayList<String>();
Pattern p_img = Pattern.compile("<(IMG|IMAGE)(.*?)(>|/>|</IMG>)", Pattern.CASE_INSENSITIVE);
Matcher m_img = p_img.matcher(content);
while (m_img.find()) {
//获取<img />标签
String imgTag = m_img.group(0);
System.out.println("====图片标签===="+imgTag);
//获取<img />标签中的内容
String img = m_img.group(2);
System.out.println("====图片标签内容===="+img);
//开始匹配<img />标签中的src
Pattern p_src = Pattern.compile("(src|SRC)=(\"|\')(.*?)(\"|\')");
Matcher m_src = p_src.matcher(img);
if (m_src.find()) {
String src = m_src.group(3);
System.out.println("===标签src===="+src);
list.add(src);
}
}
return list;
}
结果:
====图片标签====<IMAGE SRC="http://www.886.cn/attpic_brief.jpg" >
====图片标签内容==== SRC="http://www.886.cn/attpic_brief.jpg"
===图片src====http://www.886.cn/attpic_brief.jpg
====图片标签====<img src="http://www.886.cn/attpic_brief.jpg" >
====图片标签内容==== src="http://www.886.cn/attpic_brief.jpg"
===图片src====http://www.886.cn/attpic_brief.jpg
====图片标签====<IMG SRC="http://www.886.cn/attpic_brief.jpg">
====图片标签内容==== SRC="http://www.886.cn/attpic_brief.jpg"
===图片src====http://www.886.cn/attpic_brief.jpg