程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> C#中使用正則表達式初探

C#中使用正則表達式初探

編輯:.NET實例教程
/******雪龍原創*******/
//版權所有,末經作者同意不得轉載

前段忙了好長一段時間,終於有點時間學點新東西了。記得前段看過幾篇安全方面的文章,提到SQL注入的問題,於是就想做些防注入方面的探索。要防范注入,最重要是對輸入的信息,尤其是放到SQL語句中執行的信息,進行驗證,保證其中不包含惡意的SQL元素,而這種驗證,正好屬於正則表達式的范圍,於是對C#的正則表達式進行了實驗,以其滿足我的需要,現將實驗結果與大家分享。

運行環境:WinXP+IIS6+ASP.Net+C#

正則表達式是一種用於模式匹配和替換的強有力工具,它通過構建一個表達式對輸入的字符串進行模式匹配,然後返回處理後的結果,如果你對它還不了解,請繼續往下看。
  
  以最廣泛的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個小寫字母以外的字符

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved