自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET正則表達式的命名組和四向處理功能

開發(fā) 后端
本文介紹ASP.NET正則表達式的兩個高級功能:命名組和四向處理。

ASP.NET正則表達式高級功能

正則表達式有兩個不得不說的功能,一個是“命名組”,另一個是“四向處理”(lookaround processing)。由于這些功能很少使用,此處只簡單闡述一下。

ASP.NET正則表達式的命名組

使用命名組,您可單獨命名匹配組,然后在表達式中使用程序語言引用這些組。如果結合 Replace 方法重新設置輸入字符串的格式(通過重新排列順序、替換輸入字符串中的元素),這個功能特別有效。例如,假設日期使用 MM/DD/YYYY 格式的字符串,而您希望日期格式是 DD-MM-YYYY。此時,可編寫一個表達式捕獲***種格式,遍歷它的匹配集合,并分析每個字符串,然后使用字符串操作建立替換字符串。這需要大量的代碼和大量的處理。如果使用命名組,您可完成同樣的任務,具體見下:

  1. String MDYToDMY(String input)  
  2. {  
  3.    return Regex.Replace(intput, @"\b(?<month>\d{1,2})/(?<day>\d{1,2}/(?<year>\d{4})\b", "${day}-  
  4. ${month}-${year}");  
  5. }  

您還可以按編號或按名稱引用組。在任何情況下,這種引用通稱作“反向引用”。另一個經(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}$

【編輯推薦】

  1. .NET正則表達式基礎學習資料
  2. 什么是正則表達式:其歷史與.NET框架的關系
  3. 詳解C#正則表達式
  4. 利用正則表達式使C#判斷輸入日期格式是否正確
  5. .NET下正則表達式應用四例
責任編輯:yangsai 來源: MSDN
相關推薦

2009-09-16 18:19:34

正則表達式組

2009-07-21 17:46:47

ASP.NET表達式

2009-03-24 08:56:15

正則表達式格式清理字符串

2009-08-07 14:24:31

.NET正則表達式

2018-09-27 15:25:08

正則表達式前端

2009-08-24 17:14:41

正則表達式C#和.NET框架

2012-04-28 15:22:46

PHP

2012-01-12 10:21:57

正則表達式

2010-03-03 12:58:41

Linux正則表達式

2009-08-07 14:31:40

.NET正則表達式基礎

2020-09-04 09:16:04

Python正則表達式虛擬機

2009-03-12 10:15:15

正則表達式JDK7Java

2024-09-14 09:18:14

Python正則表達式

2009-08-19 14:48:57

正則表達式性能

2010-01-05 17:46:04

.NET Framew

2010-03-25 18:25:36

Python正則表達式

2009-06-09 09:00:09

java正則表達式

2021-01-27 11:34:19

Python正則表達式字符串

2009-02-18 09:48:20

正則表達式Java教程

2011-06-02 12:34:16

正則表達式
點贊
收藏

51CTO技術棧公眾號