㈠ js正則表達式過濾html標簽,這個正則式怎麼寫
代碼雖短功能卻超強,運行效率也很高!
public static string ClearHtmlCode(string text)
{
text = text.Trim();
if (string.IsNullOrEmpty(text))
return string.Empty;
text = Regex.Replace(text, "[/s]{2,}", " "); //two or more spaces
text = Regex.Replace(text, "(<[b|B][r|R]/*>)+|(<[p|P](.|/n)*?>)", " "); //<br>
text = Regex.Replace(text, "(/s*&[n|N][b|B][s|S][p|P];/s*)+", " "); //
text = Regex.Replace(text, "<(.|/n)*?>", string.Empty); //any other tags
text = Regex.Replace(text, "/<//?[^>]*>/g", string.Empty); //any other tags
text = Regex.Replace(text, "/[ | ]* /g", string.Empty); //any other tags
text = text.Replace("'", "''");
text = Regex.Replace(text, "/ [/s| | ]* /g", string.Empty);
return text;
}
㈡ 用正則表達式過濾獲取到的HTML,取得HTML里其中的一段代碼
function returnHtml(){
var str = "123<ul class=\"list01 font_s_14 line_h_25\">456</span></li></ul><div class=\"box_hr16\">";
var res = str.replace(/<ul class=\"list01 font_s_14 line_h_25\">(.*)</span></li></ul><div class=\"box_hr16\">/,"");
if(!res||res[1])
return "";
return res[1];
}
㈢ 【Java作業向】正則表達式過濾HTML標簽
過濾HTML標簽的Java正則表達式 (?s)<.*?/?.*?>
按照你的要求編寫的用正則表達式過濾HTML標簽的Java程序回如下
public class AA {
public String tagFilter(String s){
String regex = "(?s)<.*?/?.*?>";
String ss=s.replaceAll(regex,"");
return ss;
}
public static void main(String[] args) {
String s="<div class="guid time online">測試答 abc</div><span data-url="games/details/" class="guid done">你好13548</span><a href="games/details/" class="guid">15個字母Abc</a><i class="icon-guid"/>";
String result=new AA().tagFilter(s);
System.out.println(result);
}
}
㈣ 用正則表達式過濾HTML標簽
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* <p>
* Title: HTML相關的正則表達式工具類
* </p>
* <p>
* Description: 包括過濾HTML標記,轉換HTML標記,替換特定HTML標記
* </p>
* <p>
* Copyright: Copyright (c) 2006
* </p>
*
* @ hejian
* @version 1.0
* @createtime 2006-10-16
*/
public class HtmlRegexpUtil {
private final static String regxpForHtml = "<([^>]*)>"; // 過濾所有以<開頭以>結尾的標簽
private final static String regxpForImgTag = "<\\s*img\\s+([^>]*)\\s*>"; // 找出IMG標簽
private final static String regxpForImaTagSrcAttrib = "src=\"([^\"]+)\""; // 找出IMG標簽的SRC屬性
/**
*
*/
public HtmlRegexpUtil() {
// TODO Auto-generated constructor stub
}
/**
*
* 基本功能:替換標記以正常顯示
* <p>
*
* @param input
* @return String
*/
public String replaceTag(String input) {
if (!hasSpecialChars(input)) {
return input;
}
StringBuffer filtered = new StringBuffer(input.length());
char c;
for (int i = 0; i <= input.length() - 1; i++) {
c = input.charAt(i);
switch (c) {
case '<':
filtered.append("<");
break;
case '>':
filtered.append(">");
break;
case '"':
filtered.append(""");
break;
case '&':
filtered.append("&");
break;
default:
filtered.append(c);
}
}
return (filtered.toString());
}
/**
*
* 基本功能:判斷標記是否存在
* <p>
*
* @param input
* @return boolean
*/
public boolean hasSpecialChars(String input) {
boolean flag = false;
if ((input != null) && (input.length() > 0)) {
char c;
for (int i = 0; i <= input.length() - 1; i++) {
c = input.charAt(i);
switch (c) {
case '>':
flag = true;
break;
case '<':
flag = true;
break;
case '"':
flag = true;
break;
case '&':
flag = true;
break;
}
}
}
return flag;
}
/**
*
* 基本功能:過濾所有以"<"開頭以">"結尾的標簽
* <p>
*
* @param str
* @return String
*/
public static String filterHtml(String str) {
Pattern pattern = Pattern.compile(regxpForHtml);
Matcher matcher = pattern.matcher(str);
StringBuffer sb = new StringBuffer();
boolean result1 = matcher.find();
while (result1) {
matcher.appendReplacement(sb, "");
result1 = matcher.find();
}
matcher.appendTail(sb);
return sb.toString();
}
/**
*
* 基本功能:過濾指定標簽
* <p>
*
* @param str
* @param tag
* 指定標簽
* @return String
*/
public static String fiterHtmlTag(String str, String tag) {
String regxp = "<\\s*" + tag + "\\s+([^>]*)\\s*>";
Pattern pattern = Pattern.compile(regxp);
Matcher matcher = pattern.matcher(str);
StringBuffer sb = new StringBuffer();
boolean result1 = matcher.find();
while (result1) {
matcher.appendReplacement(sb, "");
result1 = matcher.find();
}
matcher.appendTail(sb);
return sb.toString();
}
/**
*
* 基本功能:替換指定的標簽
* <p>
*
* @param str
* @param beforeTag
* 要替換的標簽
* @param tagAttrib
* 要替換的標簽屬性值
* @param startTag
* 新標簽開始標記
* @param endTag
* 新標簽結束標記
* @return String
* @如:替換img標簽的src屬性值為[img]屬性值[/img]
*/
public static String replaceHtmlTag(String str, String beforeTag,
String tagAttrib, String startTag, String endTag) {
String regxpForTag = "<\\s*" + beforeTag + "\\s+([^>]*)\\s*>";
String regxpForTagAttrib = tagAttrib + "=\"([^\"]+)\"";
Pattern patternForTag = Pattern.compile(regxpForTag);
Pattern patternForAttrib = Pattern.compile(regxpForTagAttrib);
Matcher matcherForTag = patternForTag.matcher(str);
StringBuffer sb = new StringBuffer();
boolean result = matcherForTag.find();
while (result) {
StringBuffer sbreplace = new StringBuffer();
Matcher matcherForAttrib = patternForAttrib.matcher(matcherForTag
.group(1));
if (matcherForAttrib.find()) {
matcherForAttrib.appendReplacement(sbreplace, startTag
+ matcherForAttrib.group(1) + endTag);
}
matcherForTag.appendReplacement(sb, sbreplace.toString());
result = matcherForTag.find();
}
matcherForTag.appendTail(sb);
return sb.toString();
}
}
㈤ 正則表達式如何過濾HTML標簽中的屬性值
去掉html標簽: str.replace(/</?[a-zA-Z]+[^><]*>/g,"")
去掉標簽裡面的屬性: str.replace(/<([a-zA-Z]+)\s*[^><]*>/g,"<$1>")
我親自測試通過,操作語言專javascript 樓主還有問題的屬話Hi 我
㈥ 正則表達式,如何取HTML標簽的屬性。
<a href=\"(.+?)\" class=\"e\">(.+?)</a>
(.+?):「()」是分組匹配,「.」是任意字元匹配,「+」是匹配一到多個,「?」是非貪婪版匹配,即權最少字元匹配,否則會匹配到一些冗餘信息。
整個表達式中class=\"e\"是區分頁面一和頁面二的關鍵哦~
㈦ 正則怎麼匹配html裡面所有的class
這樣寫最簡單,也只能匹配help
<div class="help">(.*?)</div>
其它ig什麼的自己加就是/也自己加,我平時沒加這些個
那裡有換行,那裡就加個\n
有換行加([.\n]*?)
這是最保險的匹配方法
㈧ 求過濾html標簽和CSS樣式表的正則表達式!
先過濾樣式表之後再過濾html標簽
過濾樣式表用
<STYLE>[/s/S]*<\/STYLE>
然後再用<.[^>]*>過濾其他標簽HTML
㈨ 寫一個正則,匹配html中所有的class
<script type="text/javascript">
//獲取的html內容不知道為什麼會有script標簽內的內容。。專。。可以用屬jQuery試試
var str =document.getElementsByTagName("body")[0].innerHTML;
var strArr = str.match(/class="(\S*)"/g);
for(var i=0;i<strArr.length;i++){
document.write("Result: " + strArr[i]+"</br>");
}
</script>