.NET下正則表達式應用的四個示例 (轉自“清清月兒”)

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.contoso.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}"); 
}  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章