.NET下正規表示式應用四例

iDotNetSpace發表於2009-04-01

1.確認有效電子郵件格式

下面的程式碼示例使用靜態 Regex.IsMatch 方法驗證一個字串是否為有效電子郵件格式。如果字串包含一個有效的電子郵件地址,則 IsValidEmail 方法返回 true,否則返回 false,但不採取其他任何操作。您可以使用 IsValidEmail,在應用程式將地址儲存在資料庫中或顯示在ASP.NET 頁中之前,篩選出包含無效字元的電子郵件地址。

Visual Basic程式碼示例

Function IsValidEmail(strIn As String) As Boolean

' Return true if strIn is in valid e-mail format.

Return Regex.IsMatch(strIn, ("^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|
                        (([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$")

End Function

C#程式碼示例

bool IsValidEmail(string strIn)

{

// Return true if strIn is in valid e-mail format.

return Regex.IsMatch(strIn, @"^([w-.]+)@(([[0-9]{1,3}.[0-9]
                     {1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$");

}

2.清理輸入字串

下面的程式碼示例使用靜態 Regex.Replace 方法從字串中抽出無效字元。您可以使用這裡定義的 CleanInput 方法,清除掉在接受使用者輸入的窗體的文字欄位中輸入的可能有害的字元。CleanInput 在清除掉除 @、-(連字元)和 .(句點)以外的所有非字母數字字元後返回一個字串。

Visual Basic程式碼示例

Function CleanInput(strIn As String) As String

' Replace invalid characters with empty strings.

Return Regex.Replace(strIn, "[^w.@-]", "")

End Function

C#程式碼示例

String CleanInput(string strIn)

{

// Replace invalid characters with empty strings.

return Regex.Replace(strIn, @"[^w.@-]", "");

}

3.更改日期格式

以下程式碼示例使用 Regex.Replace方法來用 dd-mm-yy 的日期形式代替 mm/dd/yy 的日期形式。

Visual Basic程式碼示例

Function MDYToDMY(input As String) As String

Return Regex.Replace(input, _

"b(?d{1,2})/(?d{1,2})/(?d{2,4})b", _

"${day}-${month}-${year}")

End Function


C#程式碼示例

String MDYToDMY(String input)

{

return Regex.Replace(input,

"\b(?\d{1,2})/(?\d{1,2})/(?\d{2,4})\b",

"${day}-${month}-${year}");

}

Regex替換模式

本示例說明如何在 Regex.Replace 的替換模式中使用命名的反向引用。其中,替換表示式 ${day} 插入由 (?...) 組捕獲的子字串。

有幾種靜態函式使您可以在使用正規表示式操作時無需建立顯式正規表示式物件,而 Regex.Replace 函式正是其中之一。如果您不想保留編譯的正規表示式,這將給您帶來方便

4.提取URL 資訊

以下程式碼示例使用Match.Result 來從URL提取協議和埠號。例如,“http://www.example.com:8080/letters/readme.html”將返回“http:8080”。

Visual Basic程式碼示例

Function Extension(url As String) As String

Dim r As New Regex("^(?w+)://[^/]+?(?:d+)?/", _

RegexOptions.Compiled)

Return r.Match(url).Result("${proto}${port}")

End Function

C#程式碼示例

String Extension(String url)

{

Regex r = new Regex(@"^(?w+)://[^/]+?(?:d+)?/",

RegexOptions.Compiled);

return r.Match(url).Result("${proto}${port}");

}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-582442/,如需轉載,請註明出處,否則將追究法律責任。

相關文章