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 真 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(?<month>d{1,2})/(?<day>d{1,2})/(?<year>d{2,4})b", _
"${day}-${month}-${year}")
End Function
[C#]
String MDYToDMY(String input)
{
return Regex.Replace(input,
" \b(?<month>\d{1,2})/(?<day>\d{1,2})/(?<year>\d{2,4})\ b ",
"${day}-${month}-${year}");
}
Regex 取代模式
本範例說明如何在Regex.Replace 的取代模式中使用命名的反向參考。其中,替換表達式${day} 插入(?<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("^(?<proto>w+)://[^/]+?(?<port>:d+)?/", _
RegexOptions.Compiled)
Return r.Match(url).Result("${proto}${port}")
End Function
[C#]
String Extension(String url)
{
Regex r = new Regex(@"^(?<proto>w+)://[^/]+?(?<port>:d+)?/",
RegexOptions.Compiled);
return r.Match(url).Result("${proto}${port}");
}