精华内容
下载资源
问答
  • 如果用户在录入文章内容时,录入了前端编辑器【我们采用tinymce编辑器】提供的表情符号时,该编辑器也把表情符号转换成了 img标签。只不过src路径前部分是固定的。 要求: 后台返回文章内容前300字是过滤了html...

    背景

    近期做一个文章管理的模块,里面有个查询文章列表的接口,要求显示文章内容前300个字。由于文章内容可能包含多张图片,附件等。所以在数据库中文章内容存的是blob格式。前端是把文章的html格式传给后台,由后台整体存到blob中

    如果用户在录入文章内容时,录入了前端编辑器【我们采用tinymce编辑器】提供的表情符号时,该编辑器也把表情符号转换成了 img标签。只不过src路径前部分是固定的。

    要求

    后台返回文章内容前300字是过滤了html标签的纯文字,比如<p> <a> <img>等标签替换成空了。但是表情符号不要过滤,前300字中如果有表情符号就显示表情符号,其他图片必须过滤。

    解决办法

    利用正则把文章内容的html标签替换成空,但是不能替换特定img表情符,然后剩余存文字取前300即可。

    //content是文章内容的html
    //static/tinymce4.7.5/plugins/img/01.gif  是表情符路径,所有表情符号前面路径都一样,
    //只有名字不一样
    //正则:(?!<(img|IMG) src=\"static/tinymce4.7.5/plugins/img/.*?/>)<.*?>
    content = content.replaceAll("(?!<(img|IMG) src=\"static/tinymce4.7.5/plugins/img/.*?/>)<.*?>","");
    
    //过滤tab符号、回车、换行html
    content = content.replaceAll("\t|\n|\r","");
    
    //双引号替换为“”
    content = content.replaceAll("&ldquo;","\"");
    content = content.replaceAll("&rdquo;","\"");
    
    //空格去掉
    content = content.replaceAll("&nbsp;","");
    
    if(content.length()>300){
        content = content.substring(0,300);
    }
    System.out.printf("content=" + content);
    
    

     

    展开全文
  • 在做项目的过程中,需要将一段html代码中的img标签中的src属性值批量替换成其他对应的值。如下一段代码demoimg{width: 200px;}![]...

    在做项目的过程中,需要将一段html代码中的img标签中的src属性值批量替换成其他对应的值。

    如下一段代码

    demo

    img{

    width: 200px;

    }

    ![](http://upload-images.jianshu.io/upload_images/765812-0c17fe5db8bfa3b9.JPG?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    ![](http://upload-images.jianshu.io/upload_images/765812-0c17fe5db8bfa3b9.JPG?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    ![](http://upload-images.jianshu.io/upload_images/765812-0c17fe5db8bfa3b9.JPG?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    ![](http://upload-images.jianshu.io/upload_images/765812-0c17fe5db8bfa3b9.JPG?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    经过处理需要变成如下一段html片段

    demo

    img{

    width: 200px;

    }

    ![](http://dogwhere.b0.upaiyun.com/topic/3b473ccb822f4354823c07a8addf18667.JPG)

    ![](http://dogwhere.b0.upaiyun.com/topic/3b473ccb822f4354823c07a8addf18668.JPG)

    ![](http://dogwhere.b0.upaiyun.com/topic/3b473ccb822f4354823c07a8addf18669.JPG)

    ![](http://dogwhere.b0.upaiyun.com/topic/3b473ccb822f4354823c07a8addf18670.JPG)

    解决这个问题的关键就是一个正则表达式,如下是处理的完整代码

    //匹配img标签的正则表达式

    String regxpForImgTag = "]+/>";

    Pattern pattern = Pattern.compile(regxpForImgTag);

    Matcher matcher = pattern.matcher(result);

    while (matcher.find()) {

    String temp = matcher.group();

    String tempUrl = temp.substring(temp.indexOf("src=") + 5);

    tempUrl =tempUrl.substring(0, tempUrl.indexOf("\""));

    String urlResult = "another url";

    result = result.replace(temp, urlResult);

    }

    展开全文
  • content = content....img[^&gt;]*?)\\s+width\\s*[:|=]\\s*\\S+","$1"); content = content.replaceAll("(&lt;img[^&gt;]*?)\\s+height\\s*[:|=]\\s*\\S+","$1");

    content = content.replaceAll("(<img[^>]*?)\\s+width\\s*[:|=]\\s*\\S+","$1");
    content = content.replaceAll("(<img[^>]*?)\\s+height\\s*[:|=]\\s*\\S+","$1");

    展开全文
  • package ... import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pa...
    package com.xx.content.questions.xx.util;
    
    import java.util.ArrayList;
    import java.util.HashSet;
    import java.util.List;
    import java.util.Set;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    import org.apache.commons.lang3.StringUtils;
    
    import com.eebbk.edu.common.util.json.JsonTool;
    
    public class HtmlUtil {
    
    //	// 匹配url地址
    //    private static final String patternSrcStr = "http(\'?|\"?)(.*?)(\'|\"|>|\\))";
    //    // 匹配css url地址
    //    private static final String patternUrlStr = "\\s+([^>]*)url\\((.*?)\\)";
        
        // 匹配url地址
        private static final String patternSrcStr = "(\'?|\"?)(.*?)(\'|\"|>|\\))";
        // 匹配css url地址
    //    private static final String patternUrlStr = "\\s+([^>]*)\\((.*?)\\)";
        /** 默认小猿地址 */
        private static final String DEFAULT_XIAOYUAN_DOMAIN = "http://xxx";
        
    	/**
    	 * @description 从html中过滤出图片地址
    	 * @param content
    	 * @return
    	 */
    	public static List<String> extralImg(String content) 
    	{
    		Set<String> datas = new HashSet<>();
    		if("".equals(content) || content == null)
    		{
    			return null;
    		}
    		Pattern patternSrc = Pattern.compile(patternSrcStr,Pattern.CASE_INSENSITIVE);
            Matcher matcherSrc = patternSrc.matcher(content);
            while(matcherSrc.find()) 
            {
            	if(StringUtils.isNotEmpty(matcherSrc.group(1)))
            	{        		
            		datas.add( matcherSrc.group(1));
            	}
            	if(StringUtils.isNotEmpty(matcherSrc.group(2)))
            	{        		
            		datas.add(matcherSrc.group(2));
            	}
            }
            List<String> result = new ArrayList<>();
            for(String url : datas) {
            	if(isReplace(url)) {
            		url = url.replace("+", "%2B").replace("amp;", "");
            		result.add(url);
            	}
            }
            return result;
    	}
    	
    	private static String[] suffixs = {"png", "jpg", "jpeg", "mp3", "gif", "svg", "css", "js", "GIF"};
    	
    	public static boolean isReplace(String url) {
    		for(String suffix : suffixs) {
    			if(url.endsWith("." + suffix) || url.contains("latext")) {
    				return true;
    			}
    		}
    		return false;
    	}
    	
        public static String delHTMLTag(String htmlStr)
        {
            String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; // 定义script的正则表达式
            String regEx_style = "<style[^>]*?>[\\s\\S]*?<\\/style>"; // 定义style的正则表达式
            String regEx_html = "<[^>]+>"; // 定义HTML标签的正则表达式
    
            Pattern p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);
            Matcher m_script = p_script.matcher(htmlStr);
            htmlStr = m_script.replaceAll(""); // 过滤script标签
    
            Pattern p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);
            Matcher m_style = p_style.matcher(htmlStr);
            htmlStr = m_style.replaceAll(""); // 过滤style标签
    
            Pattern p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
            Matcher m_html = p_html.matcher(htmlStr);
            htmlStr = m_html.replaceAll(""); // 过滤html标签
            // 去除过滤html标签后的空行
            htmlStr = htmlStr.replaceAll("((\r\n)|\n)[\\s\t ]*(\\1)+", "").replaceAll("^((\r\n)|\n)", "").trim().replace("\\n", "").trim();
            htmlStr = htmlStr.replaceAll("\r|\n|\r", "");
            htmlStr = htmlStr.replace("&nbsp;", " ");
            Pattern p = Pattern.compile("\\s+");
            Matcher m = p.matcher(htmlStr);
            htmlStr = m.replaceAll(" ");
            return htmlStr;
        }
        
        public static void main(String[] args) 
        {
    		String str = "<html></br> <head></head></br> <body></br>  <p>化简.<br></p> </br>  <p>(1)<img class=\"kfformula\" src=\"http://solar.fbcontent.cn/apolo-image/api/156937a5e3bbe0d.jpg\" style=\"width:280px\">;</p> </br>  <p>(2)<img class=\"kfformula\" src=\"http://solar.fbcontent.cn/apolo-image/api/156937a61014737.jpg\" style=\"width:221.5px\">.</p></br> </body></br></html>";
    		String a="<p>Life used to be fun for teenagers in Britain. They used to have<img data-cke-saved-src=\"/zximages/zhixue/wordToHtml/bjcssp_0eb43c53-e464-4f8b-951a-98801226b9df.png\" src=\"/zximages/img/question/addQuestion/642/2083a301-a41e-4458-bf14-8ec193215f7a.png\">to spend, and free time to while away (消磨) and meet in teenage coffee bars. But for many young people, life is <u></u><img data-cke-saved-src=\"/zximages/zhixue/wordToHtml/bjcssp_272c4735-3629-4720-aae8-7a3e7897e917.png\" src=\"/zximages/img/question/addQuestion/355/94d9fb35-3774-4f09-ba92-3d3da381fa55.png\"><u></u>  now. <u></u><img data-cke-saved-src=\"/zximages/zhixue/wordToHtml/bjcssp_da1e7cf7-1e12-48be-8d05-161e1b16aee0.png\" src=\"/zximages/img/question/addQuestion/19/25dbc50b-9d69-4510-984b-20c5978885f6.png\"><u></u> are difficult to find. There’s not so much money around. Things are more<img data-cke-saved-src=\"/zximages/zhixue/wordToHtml/bjcssp_a9cb8d1f-0a07-4720-8e34-bf2bf3480b8b.png\" src=\"/zximages/img/question/addQuestion/148/a83a2fac-0489-4f88-8edc-12ae0058873c.png\"><u></u>, and it’s hard to find a place to live in. Teachers say that students work harder than they used to. They are more interested in <u></u><img data-cke-saved-src=\"/zximages/zhixue/wordToHtml/bjcssp_732a96a9-047f-475f-a3af-168261281526.png\" src=\"/zximages/img/question/addQuestion/114/6e2b9486-c483-4111-be63-9e5142e9e873.png\"><u> </u> exams. They know that good exam<img data-cke-saved-src=\"/zximages/zhixue/wordToHtml/bjcssp_e4106604-0932-4755-beef-d8510312d3ea.png\" src=\"/zximages/img/question/addQuestion/958/fb94f4c1-83cf-49ee-a2d7-60e164d100ce.png\"> may bring them better jobs.</p>"; 
    		String b="<div style=\"background: url('/upimages/images/part/8652L.png') no-repeat; width:8px; height:14px;float:left;overflow:hidden\"></div>";
    		String out="<p class=\"question_option\">A.<img alt=\"\" src=\"/zximages/question/2018/6/11/9/31/42114eaf-7bff-4522-8e48-ec015ffacc0c.png\" style=\"vertical-align:middle\" w=\"107px\" h=\"182px\" />&nbsp;&nbsp;B.<img alt=\"\" src=\"/zximages/question/2018/6/11/9/31/d3d3a4f8-371d-43e9-bb26-b80af4f9ffbd.png\" style=\"vertical-align:middle\" w=\"122px\" h=\"184px\" />&nbsp;&nbsp;C.<img alt=\"\" src=\"/zximages/question/2018/6/11/9/31/44ff98aa-097b-4996-aa01-8cac7e9b5bc3.png\" style=\"vertical-align:middle\" w=\"115px\" h=\"181px\" />&nbsp;&nbsp;D.<img alt=\"\" src=\"/zximages/question/2018/6/11/9/31/02b281fd-97df-4572-84f2-259a669405fd.png\" style=\"vertical-align:middle/\" w=\"107px\" h=\"175px\" />&nbsp;&nbsp;</p>";
    //		String out2="<div> 实验室中用如图所示的装置进行甲烷与氯气在光照下反应的实验。 <br /><img alt=\"\" src=\"/zximages/question/2018/6/11/9/31/0e13d9e4-28a0-463f-abf2-0317e6269301.png\" style=\"vertical-align:middle" w="172px" h="157px" /> <br />光照下反应一段时间后,下列装置示意图中能正确反映实验现象的是\(\rm{(}\)  \(\rm{)}\) </div> ";
    		
    		String imggg="<img align=\"middle\" class=\"Wirisformula\" "
    		+"src=\"/zximages/question/addQuestion/787/f02135e4-e766-4c72-b850-fdf494a84129.png\" "
    		+"style=\"vertical-align:middle\"  name=\"lpf\"/>";
    		System.out.println(JsonTool.toJson(extralImg(imggg)));
    //		System.out.println(JsonTool.toJson(extralImg(b)));
    		
    	}
        
    }
    

     

    展开全文
  • 工具类记录于此,以供参考。 package ... import org.apache.commons.lang3.StringUtils; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @author hilbert.xu * @date...
  • java正则过滤标签

    2011-05-18 16:25:13
    public static void main(String[] ...img src= http://q.&lt;em&gt;&lt;em&gt;cntv&lt;/em&gt;&lt;/em&gt;.cn/emote/6.gif /&gt;"; System.out.println(fiterTag(s));...
  • 方法一:/**过滤HTML里去除img、p、span外的所有标签* @param str* @return* @throws PatternSyntaxException*/public static String stringFilter(String str)throws PatternSyntaxException {String regEx = "(?...
  • /**过滤HTML里去除img、p、span外的所有标签 * @param str * @return * @throws PatternSyntaxException */ public static String stringFilter(String str)throws PatternSyntaxException { String regEx = "(?!&...
  • /**过滤HTML里去除img、p、span外的所有标签 * @param str * @return * @throws PatternSyntaxException */ public static String stringFilter(String str)throws PatternSyntaxException { String regEx = "(?!&...
  • 应用场景,比如你的网站有个富文本编辑器,富文本编辑器中带有很多html标签,比如p标签,img标签等等,这些在富文本编辑器中时非常常见的,而富文本提交的信心带标签,我们有的时候不是要把添加的内容完全展示,而是...
  • 首先分享一些比较常见的$str=preg_replace("/]*?srcs*=s*('|")(.*?... //过滤img标签$str=preg_replace("/s+/","", $str); //过滤多余回车$str=preg_replace("/$str=preg_replace("//si","",$str); //注释$s...
  • 使用正则表达式对前端代码段进行过滤,取出图片url/** * @Title: getPictureUrl * @Description: 从单位详情中获取移动端单位列表所显示的图片url * @param context 单位详情html代码 * @return 第一张图片的url...
  • \\s*(.*)\\s*2、过滤Img标签]*)\\s*/\\s*>3、过滤Img标签下的src]*)src\\s*=\\s*([^>]+)4、过滤Javascript标签]*>[\\s\\S]*5、link标签]*\\s*/\\现在有类似abc3232 只要内容这么一个串,需要提取abc,3232,...
  • 2、过滤Img标签 ]*)\\s*/?\\s*> 3、过滤Img标签下的src ]*)src\\s*=\\s*([^>]+) 4、过滤Javascript标签 ]*?>[\\s\\S]*? 5、link标签 ]*\\s*/?\\s*> 6、link标签 ]*?\\s*>\\s*[\\s\\S]*?\
  • 场景:现有一批大量的网页数据,已经抓取到网页的body内容,但是其中有很多 、 、<\img>、、<\strong> 等标签,需要将这些标签全部过滤掉,只留下正文信息。import java.io.BufferedReader; import java.io.File; ...
  • Java语言基础下载

    热门讨论 2010-09-07 21:56:38
    Img标签和src属性 469 HTML背景 475 内容总结 478 独立实践 479 第二十四章:HTML进阶 480 学习目标 480 知识要点 481 表单 481 HTML框架 488 框架 488 在子窗体中访问并控制父窗体中对象 493 内容总结 495 独立实践...
  • 使用流框架来处理图像,该框架涉及图像生产者、可选的图像过滤器和图像使用者。   有了强大的awt包就可以做一个简单的登录验证码了,先看一下效果图: 废话不多说 其实登录验证码他不是一个固定的图片,他...
  • java利用poi解析docx生成html

    千次阅读 2018-11-08 19:20:24
    公司业务需要把world文档中编辑好的新闻(文字+图片)录入到CMS管理后台,生成一篇新闻...1.图片要下载到服务器指定位置,并把前端请求图片地址拼接到img标签的src上。 2.图片文字要按照顺序排列。 3.过滤掉超链接、...
  • //属性里面包含有link标签的情况 if (result.indexOf(") != -1) result = getProp( "(.*)>(.*)</a></B></TD>", node.toHtml(), 2); //提取属性值信息 TableColumn nodeExt = ...
  • 后面转换思路,根据img 标签来抠取图片,方便了很多,而且都能抠出来,下面小编贴出实现代码。这儿只做了图片链接的抠取,过滤了base64图片的情况。如果读者需要抠取其他的标签,如:视频,链接。。。。只需要按相应...
  • 现在elasticsearch服务器的数据通过kibana查询已经可以正常显示,需要在Java端,写程序请求es服务器,也发出类似kibana中的搜索请求,获取搜索结果分页高亮展示给用户。用elasticsearch.client可以吗?应该怎么写呢...
  • Java学习笔记-个人整理的

    热门讨论 2012-12-19 09:57:07
    {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{subsection.1.3.1} {1.4}数据类型}{23}{section.1.4} {...
  • startpage:首页-源码

    2021-03-18 03:49:55
    注意:非常严格的广告拦截器会把事情弄得一团糟,因此请确保将外观过滤Java脚本列入白名单。 2)特点: 使用此起始页打开一个新标签页 自定义(请参阅设置) 直观的快速访问覆盖在任何网站上(可选) 根据您的...
  • (5)用filter方法实现:选择单元格内容为Java或Smalltalk的单元格 (6)取图片集中的第2,3,4张图片 (7)用has方法实现:选择那些包含有ul元素的li元素 (8)将tbody每个单元格里的文字设为:我爱jQuery ...
  • 20、修复了jspruncode的html解析错乱,如table表格,img图片标签 21、修复了版主超版部分后台权限 22、修复了主题付费、附件付费无效的问题 23、修复了积分交易功能无效的问题 24、修复了Wap设置时的页面错误、...
  • 20、修复了jspruncode的html解析错乱,如table表格,img图片标签 21、修复了版主超版部分后台权限 22、修复了主题付费、附件付费无效的问题 23、修复了积分交易功能无效的问题 24、修复了Wap设置时的页面错误、...
  • -- SpringSecurity过滤器链 名字一定要叫做springSecurityFilterChain 是她内置的 --> <filter-name>springSecurityFilterChain <filter-class>org.springframework.web.filter.DelegatingFilterProxy ...
  • Java版本:1.8 数据库:MySQL 框架:Spring + Spring MVC + MyBatis 服务器:Tomcat 前端解析框架:Thymeleaf 开发工具:Idea 2017 版本管理工具:Maven 版本控制工具:GitHub 3.2 实现过程 3.2.1 商品首页实现 ...

空空如也

空空如也

1 2
收藏数 36
精华内容 14
关键字:

java过滤img标签

java 订阅