hi,欢迎访问本站!
当前位置: 首页学习笔记正文

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

用户投稿 学习笔记 156阅读

转自:

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标签

标签:
声明:无特别说明,转载请标明本文来源!
发布评论
正文 取消