富文本中提取文本的方法分享

转自:

java代码如何从富文本中提取文本内容呢?  

富文本简介:

    富文本格式(Rich Text Format)即RTF格式,又称多文本格式,是由微软公司开发的跨平台文档格式。大多数的文字处理软件都能读取和保存RTF文档。它是一种方便于不同的设备、系统查看的文本和图形文档格式。
      RTF使用美国国内标准协会(ANSI)、 PC-8、 Macintosh(mac苹果),或 IBM 的 PC 字符设置控制显示形式和打印形式。在不同的操作系统下创建的RTF文档可以在多种操作系统和应用程序之间互相传输、查看。其作为 MS-DOS、 Microsoft Windows、 OS/2、 Macintosh苹果系统,应用程序之间处理文档的特殊翻译软件。

富文本特点:

   

特点介绍

对普通用户而言,RTF格式是一个很好的文件格式转换工具,用于在不同应用程序之间进行格式文本文档的传送。

通用兼容性是RTF的最大优点,它可以实现多平台的信息兼容。但同时,RTF也具有它的缺点:比如文件一般相对较大(因为嵌入了兼容各种应用程序和操作系统的不同控制符号)、WORD等应用软件特有的格式可能无法正常保存等


下文笔者讲述从java代码从富文本html中提取文本内容的方法分享,如下所示
今天接到一个需求,将富文本的内容提取并作为消息转发,那么如何提取其中的富文本呢?下文笔者将一一道来,如下所示

实现思路:
    只需定义相应的正则表达式
	  如:提取文本,只需下列的正则表达式
       String regx = "(<.+?>)|(</.+?>)";

例:

   使用正则表达式提取富文本中的文字

private static Pattern p_image= Pattern.compile("<img.*src\\s*=\\s*(.*?)[^>]*?>",Pattern.CASE_INSENSITIVE);
private static Pattern r_image=Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)");

/**
* 提取富文本中纯文本
*/
public static String getText(String richText) {
String regx = "(<.+?>)|(</.+?>)";
Matcher matcher = Pattern.compile(regx).matcher(richText);
while (matcher.find()) {
    // 替换图片
    richText = matcher.replaceAll("").replace(" ", "");
}
return richText;
}

/**
* 提取富文本中图片地址
*/
public static List<String> getImgStr(String richText) {
List<String> list = new ArrayList<>();
Matcher pMatcher = pImage.matcher(richText);
while (pMatcher.find()) {
    // 得到<img />数据
    String img = pMatcher.group();
    // 匹配<img>中的src数据
    Matcher rMatcher = rImage.matcher(img);
    while (rMatcher.find()) {
        list.add(rMatcher.group(1));
    }
}
return list;
}
private static Pattern p_image= Pattern.compile("<img.*src\\s*=\\s*(.*?)[^>]*?>",Pattern.CASE_INSENSITIVE);
private static Pattern r_image=Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)");

/**
* 提取富文本中纯文本
*/
public static String getText(String richText) {
String regx = "(<.+?>)|(</.+?>)";
Matcher matcher = Pattern.compile(regx).matcher(richText);
while (matcher.find()) {
    // 替换图片
    richText = matcher.replaceAll("").replace(" ", "");
}
return richText;
}

/**
* 提取富文本中图片地址
*/
public static List<String> getImgStr(String richText) {
List<String> list = new ArrayList<>();
Matcher pMatcher = pImage.matcher(richText);
while (pMatcher.find()) {
    // 得到<img />数据
    String img = pMatcher.group();
    // 匹配<img>中的src数据
    Matcher rMatcher = rImage.matcher(img);
    while (rMatcher.find()) {
        list.add(rMatcher.group(1));
    }
}
return list;
}

使用以上的方法,可剔除富文本中的html标签

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值