html java片段_java正则匹配html片段,并取得标签中的内容

最近java群好友发来一个html代码,要帮忙匹配查找html代码里面特定的内容:

代码如下:

代:2013年

向:东北

层:第10层(共33层)

构:平层

修:毛坯

住宅类别:普通住宅

建筑类别:板楼

产权性质:个人产权

需求为找到 span中内容为:住宅类别的中后面的内容,即获取“普通住宅”文本,通过分析发现如果直接匹配到具体的

住宅类别:普通住宅

发现会有点麻烦, 因为以

开头 并以结束的模式如果写的不好会匹配整个大段的html(去掉开头和结尾的dl)。所以匹配模式改为先匹配每一个dd中的内容,

则模式为:

String regex2 = "

([\\s\\S]*?)";

然后将匹配的dd字符串在去匹配span查找是否存在“住宅类别”文字。如果匹配说明是我们需要查找的

匹配span的模式为:

String regex3 = "住宅类别";

如果找到匹配的dd则将dd标签和span标签全部替换掉:思路如下:

dd=dd.replaceAll("

", "");//替换开头的dd

dd=dd.replaceAll("

", "");//替换结束的订单

dd=dd.replaceAll("", "");//替换span标签

完整代码如下:

由于对正则不是很熟悉,纯粹的摸索。如果有更好的实现方法,往各位看官不吝赐教。

public static void main(String[] args) {

String oriStr = "

"

"+

" 代:2013年

"+

"

"+

" 向:东北

"+

"

"+

" 层:第10层(共33层)

"+

"

"+

" 构:平层

"+

"

"+

" 修:毛坯

"+

"

"+

" 住宅类别:普通住宅

"+

"

"+

" 建筑类别:板楼

"+

"

"+

" 产权性质:个人产权

"+

"

"+

"

";

String regex2 = "

([\\s\\S]*?)";

String regex3 = "住宅类别";

Pattern pattern2 = Pattern.compile (regex2);

Pattern pattern3 = Pattern.compile (regex3);

Matcher match2 = pattern2.matcher (oriStr);

Matcher match3 = null;

while (match2.find ()){//取的每个dd标签

String dd = match2.group ();

System.out.println(dd);

match3 = pattern3.matcher(dd);

if(match3.find()){//找到dd中含有住宅列别的span 将没用的替换掉

dd=dd.replaceAll("

", "");

dd=dd.replaceAll("

", "");

dd=dd.replaceAll("", "");

System.out.println("\n\n\n\n\n找到啦......"+dd+"\n\n\n\n");

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值