Java基于正则表达式获取指定HTML标签指定属性值的方法
本文实例讲述了Java基于正则表达式获取指定HTML标签指定属性值的方法。分享给大家供大家参考,具体如下:
有时可能会有这样的需求,从HTML页面获取指定标签的指定属性值,可以通过第三方库解析来获取,但是这样相对比较麻烦!
如果使用正则表达式,那么就变得简单了。代码如下:
packagecom.mmq.regex;
importjava.util.ArrayList;
importjava.util.List;
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
/**
*@use获取指定HTML标签的指定属性的值
*@ProjectNamestuff
*@Authormikan
*@FullNamecom.mmq.regex.MatchHtmlElementAttrValue.java
*@JDK1.6.0
*@Version1.0
*/
publicclassMatchHtmlElementAttrValue{
/**
*获取指定HTML标签的指定属性的值
*@paramsource要匹配的源文本
*@paramelement标签名称
*@paramattr标签的属性名称
*@return属性值列表
*/
publicstaticList<String>match(Stringsource,Stringelement,Stringattr){
List<String>result=newArrayList<String>();
Stringreg="<"+element+"[^<>]*?\\s"+attr+"=['\"]?(.*?)['\"]?(\\s.*?)?>";
Matcherm=Pattern.compile(reg).matcher(source);
while(m.find()){
Stringr=m.group(1);
result.add(r);
}
returnresult;
}
publicstaticvoidmain(String[]args){
Stringsource="<atitle=中国体育报href=''>aaa</a><atitle='北京日报'href=''>bbb</a>";
List<String>list=match(source,"a","title");
System.out.println(list);
}
}
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript
正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg
希望本文所述对大家java程序设计有所帮助。