正規表示式在.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("3、 replace() 返回值為string2023年10月10日
", @"
\d+"
);for (int i = 0; i < matches.count; i++)
//常用情況:將所有的空格替換為單個空格
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...