正則表達式的實際應用(採集器,敏感詞過濾,UBB翻譯器)

感謝這位大牛的總結,此文轉載於這裏:http://www.cnblogs.com/youquan-deng/articles/csharp-regex.html

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

正則表達式可以進行字符串的匹配、字符串的提取、字符串的替換。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 ("字符串", "正則表達式");實際應用有采集器(從某個網頁上採集郵箱、圖片或其他信息)、敏感詞過濾、UBB翻譯器。

引用別人的幾張代碼:


採集郵箱:


保存圖片:



網址處理:



敏感詞過濾:



UBB翻譯:



一些常用的正則表達式

正則表達式用於字符串處理,表單驗證等場合,實用高效,但用到時總是不太把握,以致往往要上網查一番。我將一些常用的表達式收藏在這裏,作備忘之用。本貼隨時會更新。 

匹配中文字符的正則表達式: [\u4e00-\u9fa5] 

匹配雙字節字符(包括漢字在內)[^\x00-\xff] 

匹配空行的正則表達式:\n[\s| ]* 

匹配HTML標記的正則表達式:/<(.*)>.*<\/\1>|<(.*) \/>/ 

匹配首尾空格的正則表達式:(^\s*)|(\s*$) 

匹配Email地址的正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 

匹配網址URL的正則表達式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)? 


補充: 
^\d+$  //匹配非負整數(正整數 + 0) 
^[0-9]*[1-9][0-9]*$  //匹配正整數 
^((-\d+)|(0+))$  //匹配非正整數(負整數 + 0) 
^-[0-9]*[1-9][0-9]*$  //匹配負整數 
^-?\d+$    //匹配整數 
^\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+(\.\d+)?)|(0+(\.0+)?))$  //匹配非正浮點數(負浮點數 + 0) 
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$  //匹配負浮點數 
^(-?\d+)(\.\d+)?$  //匹配浮點數 
^[A-Za-z]+$  //匹配由26個英文字母組成的字符串 
^[A-Z]+$  //匹配由26個英文字母的大寫組成的字符串 
^[a-z]+$  //匹配由26個英文字母的小寫組成的字符串 
^[A-Za-z0-9]+$  //匹配由數字和26個英文字母組成的字符串 
^\w+$  //匹配由數字、26個英文字母或者下劃線組成的字符串 
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$    //匹配email地址 
^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$  //匹配url

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章