Java 正则表达式 匹配所有字符包括换行符

Java 正则表达式  标签内的内容置空

语法[\w\W]*  匹配所有字符包括换行符

目标

场景之一: 使用com.lowagie.text.pdf 导出html到word上面的时候,对于表格的内容无法处理,会报错。要把带表格的标签及其内容去掉。 

 

代码:

public static void main(String[] args) {

    String  content = "<p>图片导出</p>\n<p>&nbsp;</p>\n<p>啦啦</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>\n<p><img src=\"F://temp//back1.jpg\" alt=\"\" width=\"640\" height=\"640\" /></p>\n<p>&nbsp;</p>\n<p>发放</p>\n<p>&nbsp;</p>\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr>\n<td style=\"width: 16.6667%;\">大丰收</td>\n<td style=\"width: 16.6667%;\">阿凡达</td>\n<td style=\"width: 16.6667%;\">执行</td>\n<td style=\"width: 16.6667%;\">打算</td>\n<td style=\"width: 16.6667%;\">阿道夫</td>\n<td style=\"width: 16.6667%;\">展旭</td>\n</tr>\n<tr>\n<td style=\"width: 16.6667%;\">安抚</td>\n<td style=\"width: 16.6667%;\">啊</td>\n<td style=\"width: 16.6667%;\">的</td>\n<td style=\"width: 16.6667%;\">大</td>\n<td style=\"width: 16.6667%;\">&nbsp;发</td>\n<td style=\"width: 16.6667%;\">发送到</td>\n</tr>\n<tr>\n<td style=\"width: 16.6667%;\">阿道夫</td>\n<td style=\"width: 16.6667%;\">ad</td>\n<td style=\"width: 16.6667%;\">答复</td>\n<td style=\"width: 16.6667%;\">阿斯蒂芬</td>\n<td style=\"width: 16.6667%;\">&nbsp;发多少</td>\n<td style=\"width: 16.6667%;\">发的</td>\n</tr>\n<tr>\n<td style=\"width: 16.6667%;\">啊</td>\n<td style=\"width: 16.6667%;\">的</td>\n<td style=\"width: 16.6667%;\">更舒服的</td>\n<td style=\"width: 16.6667%;\">国防生的</td>\n<td style=\"width: 16.6667%;\">&nbsp;萨芬的</td>\n<td style=\"width: 16.6667%;\">阿斯蒂芬</td>\n</tr>\n<tr>\n<td style=\"width: 16.6667%;\">啊</td>\n<td style=\"width: 16.6667%;\">是大法官</td>\n<td style=\"width: 16.6667%;\">十多个</td>\n<td style=\"width: 16.6667%;\">杀伐果断</td>\n<td style=\"width: 16.6667%;\">杀伐果断</td>\n<td style=\"width: 16.6667%;\">用复合弓的</td>\n</tr>\n</tbody>\n</table>\n<p>&nbsp;</p>\n<p><img src=\"F://temp//back2.jpg\" alt=\"\" width=\"300\" height=\"108\" /></p>\n<p>第三方</p>\n<p>&nbsp;</p>";
    System.out.println("===============");
    String repalceStr = matchReplaceWithLabel(content, "table");
    System.out.println("repalceStr: "+repalceStr);
}


public static String matchReplaceWithLabel( String  content, String label)
{
    String pattern = "<"+label+"([\\w\\W]*)" +"</"+label+">";
    System.out.println(pattern);
    Pattern p = Pattern.compile(pattern);
    Matcher m = p.matcher(content);
    StringBuffer sb = new StringBuffer();
    while (m.find()) {
        String group = m.group();
        m.appendReplacement(sb, group == null ? "" : "");
    }
    m.appendTail(sb);
    return sb.toString();
}

结果:

repalceStr: <p>图片导出</p>
<p>&nbsp;</p>
<p>啦啦</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><img src="F://temp//back1.jpg" alt="" width="640" height="640" /></p>
<p>&nbsp;</p>
<p>发放</p>
<p>&nbsp;</p>

<p>&nbsp;</p>
<p><img src="F://temp//back2.jpg" alt="" width="300" height="108" /></p>
<p>第三方</p>
<p>&nbsp;</p>

总结:

  这边难的是知道[\w\W]*  匹配所有字符包括换行符这个语法,传对应的标签,这样html里面的,需要置空的内容,都可以处理,或是替换为想要的内容。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天狼1222

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值