/** * * @Title: replacePreTag * @Description: 將自定義視頻標籤替換成void的 * @author 凱哥Java * @param editContentStr * @return * @return Map<String,Object> * @throws */ private Map<String,Object> replacePreTag(String editContentStr) { Map<String,Object> map = new HashMap<String, Object>(); StringBuffer sbUrl = new StringBuffer(); String regStr = "<pre>([\\s\\S]*?)</pre>";//<pre>是自定義標籤 String urlStr = "(http|https)://([\\s\\S]*?)</"; Pattern r = Pattern.compile(regStr); Pattern urlr = Pattern.compile(urlStr); Matcher m = r.matcher(editContentStr); List<VoidBean> listBean = new ArrayList<VoidBean>(); while(m.find()){ Matcher mUrl = urlr.matcher( m.group(0)); if(mUrl.find()){ String url = mUrl.group(0); listBean.add(new VoidBean(0,0,url.substring(0, url.length()-2),m.group(0))); } } String mm =""; if(null != listBean && listBean.size()>0){ for (int i = 0; i < listBean.size(); i++) { StringBuffer sbCv = new StringBuffer(); VoidBean vBean = listBean.get(i); String sn = vBean.getNewStr(); if(i== listBean.size()-1){ sbUrl.append(sn); }else{ sbUrl.append(sn); sbUrl.append(","); } if("http:/".equals(sn.substring(0, 6))){ String st = sn.substring(7, sn.length()); String yuming = sn.substring(7, st.indexOf("/")+7); mm= yuming.substring(yuming.indexOf('.')+1,yuming.lastIndexOf('.')); }else if("https:".equals(sn.substring(0, 6))){ String st = sn.substring(8, sn.length()); String yuming = sn.substring(8, st.indexOf("/")+8); mm= yuming.substring(yuming.indexOf('.')+1,yuming.lastIndexOf('.')); } // System.err.println(mm); //進行視頻地址處理 if("qq".equals(mm)){//騰訊視頻的 String vid = ""; if(sn.indexOf("?vid=")>0){//https://v.qq.com/x/cover/1t9erwhksw1w712.html?vid=w0022c2qlrm vid = sn.substring(sn.indexOf("?vid=")+5); }else { vid = sn.substring(sn.lastIndexOf('/')+1,sn.length()-5); } /* sbCv.append("<ure><embed src=\"https://imgcache.qq.com/tencentvideo_v1/playerv3/TPout.swf?max_age=86400&v=20161117&vid="); sbCv.append(vid); sbCv.append("&auto=0\""); sbCv.append("allowFullScreen=\"true\" quality=\"high\" width=\"480\" height=\"400\" align=\"middle\" "); sbCv.append("allowScriptAccess=\"always\" type=\"application/x-shockwave-flash\"></embed></ure>"); */ sbCv.append("<ure><p style=\"text-align: center\"><iframe class=\"video_iframe\" style=\"z-index:1;\" "); sbCv.append("src=\"http://v.qq.com/iframe/player.html?vid="); sbCv.append(vid); // sbCv.append("&width=500&height=375&auto=0\" allowfullscreen=\"\" frameborder=\"0\" height=\"375\" width=\"500\"></iframe></p></ure>"); sbCv.append("&auto=0\" allowfullscreen=\"\" frameborder=\"0\"></iframe></p></ure>"); StringBuilder sbs = new StringBuilder(editContentStr); String preStr = vBean.getOldStr(); String url = preStr.substring(0,preStr.length()-2); int length = editContentStr.indexOf(url);//由於是從開始計數,因此加1 int end = length+url.length()+2;//取得結束位置 //進行替換 if(-1!=length){ sbs.replace(length, end, sbCv.toString()); } editContentStr= sbs.toString(); if(i==listBean.size()-1){ map.put("true", "true"); map.put("msg", ""); map.put("urlList", sbUrl.toString()); map.put("editContentStr", editContentStr); } }else if("youku".equals(mm)){//優酷 String vid = sn.substring(sn.indexOf("id_")+3, sn.indexOf(".html")); sbCv.append("<ure><embed src=\"http://player.youku.com/player.php/sid/"); sbCv.append(vid); // sbCv.append("/v.swf\" quality=\"high\" width=\"480\" height=\"400\" "); sbCv.append("/v.swf\" quality=\"high\" "); sbCv.append("align=\"middle\" allowScriptAccess=\"sameDomain\" type=\"application/x-shockwave-flash\"></embed></ure>"); StringBuilder sbs = new StringBuilder(editContentStr); String preStr = vBean.getOldStr(); String url = preStr.substring(0,preStr.length()-2); int length = editContentStr.indexOf(url);//由於是從開始計數,因此加1 int end = length+url.length()+2;//取得結束位置 //進行替換 if(-1 != length){ sbs.replace(length, end, sbCv.toString()); } editContentStr= sbs.toString(); if(i==listBean.size()-1){ map.put("true", "true"); map.put("msg", ""); map.put("urlList", sbUrl.toString()); map.put("editContentStr", editContentStr); } }else{ map.put("true", "false"); map.put("msg", "請輸入正確的騰訊視頻地址或是優酷視頻地址。"); map.put("urlList", ""); map.put("editContentStr", editContentStr); } } }else{ map.put("true", "true"); map.put("msg", ""); map.put("urlList", ""); map.put("editContentStr", editContentStr); } return map; // return editContentStr; /** * * String regStr = "<pre>([\\s\\S]*?)</pre>"; String urlStr = "http://([\\s\\S]*?)</"; Pattern r = Pattern.compile(regStr); Pattern urlr = Pattern.compile(urlStr); Matcher m = r.matcher(editContentStr); List<VoidBean> listBean = new ArrayList<VoidBean>(); while(m.find()){ Matcher mUrl = urlr.matcher( m.group(0)); if(mUrl.find()){ String url = mUrl.group(0); listBean.add(new VoidBean(0,0,url.substring(0, url.length()-2),m.group(0))); } // } for (int i = 0; i <listBean.size(); i++) { StringBuilder sbs = new StringBuilder(editContentStr); VoidBean bean = listBean.get(i); String preStr = bean.getOldStr(); String url = preStr.substring(0,preStr.length()-2); int length = editContentStr.indexOf(url);//由於是從開始計數,因此加1 int end = length+url.length()+2;//取得結束位置 // System.out.print("第"+i+"個。開始位置:"+length+", 結束位置:"+end); // String newStr = "<video src=\""+bean.getNewStr()+"\" poster=\"\" controls=\"controls\" preload=\"metadata\" webkit-playsinline=\"webkit-playsinline\" type=\"video/mp4\" > </video>"; String newStr = "<div style=\"text-align:center;\" ><video src=\""+bean.getNewStr()+"\" poster=\"\" controls=\"controls\" > </video></div>"; //進行替換 //System.out.println( sbs.subSequence(length, end)); sbs.replace(length, end, newStr); editContentStr= sbs.toString(); } return editContentStr; */ } |