新聞中心
ASP.NET正則表達式高級功能

成都創(chuàng)新互聯(lián)公司專注于同心企業(yè)網(wǎng)站建設,成都響應式網(wǎng)站建設公司,商城系統(tǒng)網(wǎng)站開發(fā)。同心網(wǎng)站建設公司,為同心等地區(qū)提供建站服務。全流程按需定制,專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務
正則表達式有兩個不得不說的功能,一個是“命名組”,另一個是“四向處理”(lookaround processing)。由于這些功能很少使用,此處只簡單闡述一下。
ASP.NET正則表達式的命名組
使用命名組,您可單獨命名匹配組,然后在表達式中使用程序語言引用這些組。如果結合 Replace 方法重新設置輸入字符串的格式(通過重新排列順序、替換輸入字符串中的元素),這個功能特別有效。例如,假設日期使用 MM/DD/YYYY 格式的字符串,而您希望日期格式是 DD-MM-YYYY。此時,可編寫一個表達式捕獲***種格式,遍歷它的匹配集合,并分析每個字符串,然后使用字符串操作建立替換字符串。這需要大量的代碼和大量的處理。如果使用命名組,您可完成同樣的任務,具體見下:
- String MDYToDMY(String input)
- {
- return Regex.Replace(intput, @"\b(?
\d{1,2})/(? , "${day}-\d{1,2}/(? \d{4})\b" - ${month}-${year}");
- }
您還可以按編號或按名稱引用組。在任何情況下,這種引用通稱作“反向引用”。另一個經(jīng)常使用反向引用的場合在匹配表達式本身,如下這個表達式用于查找重復的字母:[a-z]\1。它將匹配“aa”、“bb”、“cc”,但它不同于 [a-z]{2} 或 [a-z][a-z],后兩者是等效的,后兩者允許匹配“ab”或“ac”或任何其他兩個字母的組合。反向引用允許表達式記住表達式已經(jīng)分析并匹配過的輸入字符串中的部分字符。
ASP.NET正則表達式的“四向處理”
“四向處理”指很多正則表達式引擎所支持的正負 Lookahead 和 Lookbehind 功能。并不是所有的正則表達式引擎都支持驗證四向處理。這些構造不使用字符,即使它們可以匹配字符。有些模式可能在不使用四向處理的情況下無法描述。特別是當模式中存在的一部分依賴于另一部分,如果不使用四向處理,則不能描述這樣的模式。下面介紹了每個四向處理的語法。
|
語法 |
說明 |
|---|---|
(?=...) | 正 Lookahead |
(?!...) | 負 Lookahead |
(?<=...) | 正 Lookbehind |
(? | 負 Lookbehind |
密碼驗證是必需四向處理的一個示例。假定在密碼限制中,密碼必須介于 4 到 8 個字符,且必須至少包含一個數(shù)字。為此,您可以僅在匹配中測試 \d,然后使用字符串操作來測試長度。但要在正則表達式中實現(xiàn)這一切,必須使用 Lookahead。特別是正 lookahead,如下所示:^(?=.*\d).{4,8}$
【編輯推薦】
- .NET正則表達式基礎學習資料
- 什么是正則表達式:其歷史與.NET框架的關系
- 詳解C#正則表達式
- 利用正則表達式使C#判斷輸入日期格式是否正確
- .NET下正則表達式應用四例
文章題目:ASP.NET正則表達式的命名組和四向處理功能
網(wǎng)頁網(wǎng)址:http://www.dlmjj.cn/article/djcijss.html


咨詢
建站咨詢
