JAVA解析html标签
2015-12-31 15:46
555 查看
最近同事碰到一个问题,要取出数据库中静态页面<p>标签中的内容,问我应该怎么做,我随口答道,用正则表达式呗,很好正则表达式,其实我也不会用。很久以前我就碰到过类似的问题,当时是我同学问我的,让我思考一下如何解析html标签。我当时随口答道用split呗,结果一顿冷嘲热讽。在我的逼问下,他告诉我用正则比较好,至于怎么用,至今都没告诉我。于是今天心血来潮,开始查找解决办法。终于让我找到一个类似的,他是获取标签中属性值的一个方法,觉得挺不错的
以下就是对应代码:
public static List<String> matchs(String source, String element, String attr) {
List<String> result = new ArrayList<String>();
String reg = "<" + element + "[^<>]*?\\s" + attr + "=['\"]?(.*?)['\"]?\\s.*?>";
System.out.println(reg);
Matcher m = Pattern.compile(reg).matcher(source);
while (m.find()) {
System.out.println(m.group());
String r = m.group(1);
result.add(r);
}
return result;
}
这是获取标签属性值的方法 。经过我的不懈努力我终于找到了
后面是改版后的方法:
public static List<String> match(String source, String element) {
List<String> result = new ArrayList<String>();
String reg = "<"+element+".*?</"+element+">";
Matcher m = Pattern.compile(reg).matcher(source);
while (m.find()) {
System.out.println(m.group(0));
String r = m.group(0);
result.add(r);
}
return result;
}
以下就是对应代码:
public static List<String> matchs(String source, String element, String attr) {
List<String> result = new ArrayList<String>();
String reg = "<" + element + "[^<>]*?\\s" + attr + "=['\"]?(.*?)['\"]?\\s.*?>";
System.out.println(reg);
Matcher m = Pattern.compile(reg).matcher(source);
while (m.find()) {
System.out.println(m.group());
String r = m.group(1);
result.add(r);
}
return result;
}
这是获取标签属性值的方法 。经过我的不懈努力我终于找到了
后面是改版后的方法:
public static List<String> match(String source, String element) {
List<String> result = new ArrayList<String>();
String reg = "<"+element+".*?</"+element+">";
Matcher m = Pattern.compile(reg).matcher(source);
while (m.find()) {
System.out.println(m.group(0));
String r = m.group(0);
result.add(r);
}
return result;
}
相关文章推荐
- jdk 1.7环境下编译打包1.6版本的jar包
- Android Studio报有ava JDK valu exit 2...错误
- java8.抽象类的应用
- Java初涉之6--浅谈反射
- 25 个 Java 机器学习工具和库
- Spring mvc——接收对象Json数据,<mvc:annotation-driven/><context:annotation-config/><context:component-scan/>
- [Java][MyBatis]物理分页实现
- 类加载器--深入探讨 Java 类加载器
- java I/O 流总结学习
- java反射
- 序列化--关于 Java 对象序列化您不知道的 5 件事
- Java实战应用:MyBatis实现单表的增删改
- Java API编写
- Spring——setter方式注入和构造函数方式注入
- 中文编码--深入分析 Java 中的中文编码问题
- Spring auto wire(自动装配) 的 五种方式
- java7.instance of关键字
- java final关键字
- java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment求大神解答
- 设计模式--Java 设计模式与建模专题