.NET下正则表达式应用的四个示例
生活随笔
收集整理的這篇文章主要介紹了
.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}");?
}??
下面的代碼示例使用靜態?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}");?
}??
總結
以上是生活随笔為你收集整理的.NET下正则表达式应用的四个示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#中Base64之编码,解码方法
- 下一篇: 在ASP.NET中自动给URL地址加上超