正規表示式 之 C 後台應用

2021-09-07 03:44:46 字數 3047 閱讀 6489

正規表示式在.net就是用字串表示,這個字串格式比較特殊,無論多麼特殊,在c#語言看來都是普通的字串,具體什麼含義由regex類內部進行語法分析。

regex 類 存在於 system.text.regularexpressions 命名空間。

正規表示式可以進行字串的匹配、字串的提取、字串的替換。

c#中分別對應正規表示式的三個重要方法。

1、 ismatch() 返回值為bool型別:

格式:regex.ismatch("字串", "正規表示式");

作用:判斷字串是否符合模板要求

例如:bool b =regex.ismatch("bbbbg","^b.*g$");判斷字串是否以b開頭且以g結尾,中間可以有其他字元,若正確返回true,否則else。

2、 match() 返回值為match型別,只能匹配乙個

matches() 返回值為matchcollection集合型別,匹配所有符合的

格式:match match = regex.match("字串", "正規表示式");

或matchcollection matches= regex. matches ("字串", "正規表示式");

作用:①提取匹配的子字串

②提取組。groups的下標由1開始,0中存放match的value。

例如:

match match = regex.match("

age=30

", @"

^(.+)=(.+)$");

if(match.success)

matchcollection matches = regex.matches("

2023年10月10日

", @"

\d+"

);for (int i = 0; i < matches.count; i++)

3、 replace() 返回值為string

//

將所有的空格替換為單個空格

string str = "

aa afds fds f ";

str = regex.replace(str, @"

\s+", "");

console.writeline(str);

string str = "

hello「welcome to 」beautiful 「china」";

//hello"welcome to "beautiful "china"

//$1表示引用第一組。$2表示用第二組。

string strresult = regex.replace(str, "

「(.+?)」

", "

\"$1\"");

console.writeline(strresult);

常用情況:

1、貪婪模式與終結貪婪模式

string str = "

1。 11。 111。 111。 ";

//".+"表示匹配任意多個任意字元,會得到整個字串

//又因為需要匹配"。 ",所以得到結果為"1。 11。 111。 111。 "

//貪婪模式

match matcha = regex.match(str, "

^.+。 $");

//"?"表示終極貪婪模式,匹配時會只取乙個字元

//又因為需要匹配"。 ",所以得到結果為"1。 "

match matchb = regex.match(str, "

^.+?。 $

");

如果發現結果與想象有差別,檢視是否是貪婪模式造成的。

2、實際應用採集器(從某個網頁上採集郵箱、或其他資訊)、敏感詞過濾、ubb翻譯器。

[1]採集器

string url = "

";// system.net.webclient client = new

system.net.webclient();

client.encoding =system.text.encoding.utf8;

string strhtml =client.downloadstring(url);

//匹配郵箱

matchcollection collection = regex.matches(strhtml, @"

^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$");

for (int i = 0; i < collection.count; i++)

儲存:

string url = "

";// system.net.webclient client = new

system.net.webclient();

client.encoding =system.text.encoding.utf8;

string strhtml =client.downloadstring(url);

//假設需要匹配的字串格式都為:

//\s是為了針對寫完

matchcollection collection = regex.matches(strhtml, "");

for (int i = 0; i < collection.count; i++)

//

把"/"替換為

[2]敏感詞過濾:

[3]ubb翻譯:

正規表示式應用

d 非負整數 正整數 0 0 9 1 9 0 9 正整數 d 0 非正整數 負整數 0 0 9 1 9 0 9 負整數 d 整數 d 非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 正浮點數 d 非正浮點數 負浮點數 0 0 9 0 ...

正規表示式(應用)

在此頁面寫正規表示式,可以提供參考,和進行校驗 應用於前端 匹配任意長度的大小寫字母與數字 a za z0 9 匹配任意長度且不為空的大小寫字母與數字 a za z0 9 匹配長度小於20且不為空的大小寫字母與數字 a za z0 9 匹配長度小於20且不為空的大小寫字母與數字與漢字 a za z0...

正規表示式 應用

生成正規表示式 https http ftp rtsp mms s 分析 如果沒有在 裡面的時候,代表以什麼開頭 如果在 裡面的時候,代表除了 之外 https http ftp rtsp mms 代表乙個分組 進行分組的時候,findall方法只返回分組裡面的內容 print re.findall...