當前位置:首頁 » 凈水方式 » 正則表達式過濾

正則表達式過濾

發布時間: 2020-12-15 15:10:03

① 正則表達式 過濾網址

正則表達式,過濾出所有超鏈接除了一個url,例如:

<a href= 'http://www.abc.com/'> abc.com </a><br /><a href= 'http://www.edf.com/'> edf.com </a>

過濾:變為abc.com <br /><a href= 'http://www.edf.com/'> edf.com </a>沒人知道怎麼做么,要保留.com的超級鏈接,過濾掉其他的所有網址的超級鏈接。

FunctionautoLink(str)

Setra=NewRegExp

ra.IgnoreCase=True

ra.Global=True

ra.Pattern = "<a[^>]+>(.+?)</a>"

autoLink=ra.replace(str,"$1")

ENDFunction

(1)正則表達式過濾擴展閱讀:

注意事項:

正則表達式,也稱為正則表達式。這是計算機科學中的一個概念。

正則表達式通常用於檢索和替換符合模式(規則)的文本,許多編程語言都支持使用正則表達式進行字元串操作。

例如Perl中內置了一個強大的正則表達式引擎。正則表達式的概念最初是由諸如(sed和GREp)這樣的Unix工具推廣的。

正則表達式通常縮寫為「regex」。單數形式是regexp、regex,復數形式是regexps、regexes和regexen。

② 用正則表達式過濾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>
*
* @author 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();
}
}

③ 正則表達式過濾中文

/^(^([\\u4E00-\\u9FA5]|[\\uFE30-\\uFFA0]))*$/
你是要這個吧?
^在
正則表達式
中,還有字元串開始的意思....

④ 如何用用正則表達式過濾html中所有 Script

用正則表達式過濾html中所有Script 的方法:
1、定義正則表達式:
/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi
2、用正則表達式處理的方法如下:
<html>
<head>
<!--此處引入script腳本用於測試開始-->
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".btn1").click(function(){
alert($("p").html());
});
});
</script>
<!--此處引入script腳本用於測試結束-->
</head>
<body>
<p>This is a paragraph.</p>
<!--這里增加一個按鈕,點擊後會刪除所有的script塊的代碼-->
<button class="btn1" onclick="removeAllScript();">刪除script</button>
</body>
</html>
<!--定義function處理刪除-->
function removeAllScript(obj){
//定義正則表達式,只要是存在於<script>和</script>之間的內容都會被刪除
var SCRIPT_REGEX = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;
while (SCRIPT_REGEX.test(obj)) {//傳入文檔對象,獲取整體內容
text = text.replace(SCRIPT_REGEX, ""); //正則替換為空
}
}

⑤ 正則表達式過濾特殊字元

正則表達式裡面你帶了逗號,應該這樣寫
[。~!@#$%\^\+\*&\\\/\?\|:\.<>{}()';="]
有些符號只有少數幾個符號需要轉義,而且不用打逗號,打了逗號就相當於把逗號也過濾掉了

⑥ 正則表達式如何過濾HTML標簽中的屬性值

去掉html標簽: str.replace(/</?[a-zA-Z]+[^><]*>/g,"")
去掉標簽裡面的屬性: str.replace(/<([a-zA-Z]+)\s*[^><]*>/g,"<$1>")
我親自測試通過,操作語言javascript 樓主內還有問容題的話Hi 我

⑦ 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;
}

⑧ 如何用正則表達式 過濾 特定內容

正則表達式:^\d+(\.\d+)?$
你可以用這個正則表達式匹配輸入的字元,如果不匹配說明是非法的字母和字元.

⑨ 怎樣用正則表達式過濾掉頁面中除了<p></p>和<img>以外所有的標簽

這個還真不容易實現,單獨保留p或者img都可以,但是兩個條件放一起就不行了。於是我回換了一種思路,用答了個函數實現了,你看下,代碼是python下的:

importre

t='<html>asdfasdf<head>1111111111<body><p>asdfasdfasdf</p><imgherf="fff">'
defreplace_two(m):
"""
#過濾掉頁面中除了<p></p>和<img>以外所有的標簽
"""
all=re.findall(r'</?.*?>',m)
save=re.findall(r'</?(?:img).*?>|</?[pP]*?>',m)

foreinall:
ifenotinsave:
m1=m.replace(e,'')
m=m1
returnm

printreplace_two(t)

⑩ 正則表達式過濾'_'下劃線。

這么寫就行了 不過有這個必要嗎
using System.Text.RegularExpressions;
string[] strArr = new string[] {
"aaa.kels_kwoo._lwie" ,
"aaa.kels kwoo.lwie",
"kels kwoo.lwie",
"kels kwoo._lwie"
};
Regex regex = new Regex("^aa[^_]+$");
foreach (string item in strArr)
{
if (regex.IsMatch(item))
{
Console.WriteLine(item);
}
}
Console.ReadKey();

熱點內容
丁度巴拉斯情人電影推薦 發布:2024-08-19 09:13:07 瀏覽:886
類似深水的露點電影 發布:2024-08-19 09:10:12 瀏覽:80
《消失的眼角膜》2電影 發布:2024-08-19 08:34:43 瀏覽:878
私人影院什麼電影好看 發布:2024-08-19 08:33:32 瀏覽:593
干 B 發布:2024-08-19 08:30:21 瀏覽:910
夜晚看片網站 發布:2024-08-19 08:20:59 瀏覽:440
台灣男同電影《越界》 發布:2024-08-19 08:04:35 瀏覽:290
看電影選座位追女孩 發布:2024-08-19 07:54:42 瀏覽:975
日本a級愛情 發布:2024-08-19 07:30:38 瀏覽:832
生活中的瑪麗類似電影 發布:2024-08-19 07:26:46 瀏覽:239