正則表達式是一種用於模式匹配和替換的強有力工具,它通過構建一個表達式對輸入的字符串進行模式匹配,然後返回處理後的結果,如果你對它還不了解,請繼續往下看。
以最廣泛的WEB身份驗證為例:我們從頁面中接收到輸入的用戶名,存入變量Temp_UserName,此時變量中可能含有惡意的信息,我們想要用戶名中只包含英文字符,數字和下劃線,就要構造正則表達式對Temp_UserName進行處理,在C#中是這樣進行的:
我們要使用的是System.Text.RegularExpressions.Regex.Replace(字符串,正則表達式,替換字符)這一靜態方法,其中參數字符串當然就是我們的Temp_UserName了,正則表達式我先給出"\\W",替換字符是"",整個方法完成後就是
System.Text.RegularExpressions.Regex.Replace(Temp_UserName,"\\W","");
//它用來替換與正則表達式匹配成功的字符
下面著重說一下C#中正則表達式的構造:
C#正則表達式的構造和字符串相同,都是放在引號當中,形式如"look"。
正則表達式中提供了專門的“元字符”,它是在正則表達式中具有特殊意義的專用字符,常用的元字符包括"+","*","?","\\s","\\S","\\d","\\w","\\W",區分大小寫,下面就對元字符進行說明:
"+" 如"Lo+"匹配L後面o出現一次或多次的字符串,如"Love","Look"都是
"*" 待測試
"?" 待測試
"\\s" 匹配單個空格符,包括TAB和換行符。
"\\S" 匹配除單個空格符之外的所有字符。
"\\d" 匹配從0到0的數字。
"\\w" 匹配字母、數字和下劃線。
"\\W" 匹配所有與\\w不匹配的字符。(文中第一個例子就是用了這個元字符,將所有的單引號和空格以及其它非法字符都去掉了)
正則表達式中還提供了專門的定位符,它包括:"^","{$body}quot;,"\\b"
正則表達式中還提供了專門的范圍介定符"[]",否定符[^]
[a-z] 表示26個小寫字母中的任意一個
[abcd] 表示abcd這四個字母中的任意一個
[0-9] 表示10個數字
[^a-z] 表示除26個小寫字母以外的字符