正規表示式是一種用於模式匹配和替換的強有力工具,它通過構建乙個表示式對輸入的字串進行模式匹配,然後返回處理後的結果,如果你對它還不了解,請繼續往下看。
以最廣泛的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不匹配的字元。(文中第乙個例子就是用了這個元字元,將所有的單引號和空格以及其它非法字元都去掉了)
正規表示式中還提供了專門的定位符,它包括:"^","quot;,"//b"
正規表示式中還提供了專門的範圍介定符"",否定符[^]
[a-z] 表示26個小寫字母中的任意乙個
[abcd] 表示abcd這四個字母中的任意乙個
[0-9] 表示10個數字
[^a-z] 表示除26個小寫字母以外的字元
C 中使用正規表示式初探
前段忙了好長一段時間,終於有點時間學點新東西了。記得前段看過幾篇安全方面的文章,提到sql注入的問題,於是就想做些防注入方面的探索。要防範注入,最重要是對輸入的資訊,尤其是放到sql語句中執行的資訊,進行驗證,保證其中不包含惡意的sql元素,而這種驗證,正好屬於正規表示式的範圍,於是對c 的正規表示...
在C 中使用正規表示式
摘要 描述正規表示式在專案中的實際應用,介紹如何利用它來解析字串。諶總和老譚這兩個人,有不少相似的地方。比如說,在軟體設計和實現的時候,都希望系統的邏輯能清晰地呈現出來,也就是說,使軟體具備清晰的結構。但這一次,老譚走向了自己的反面。討論的是公式的管理問題。專案中的節點量 指標值等資料的計算,都會用...
QTP中使用正規表示式
正規表示式 regexp 物件 屬性 global屬性 設定或返回乙個 boolean 值,該值指明在整個搜尋字串時模式是全部匹配還是只匹配第乙個。ignorecase屬性 設定或返回乙個boolean值,指明模式搜尋是否區分大小寫。pattern屬性 設定或返回被搜尋的正規表示式模式。方法 exe...