VB.Net分組構造

2019-10-16 23:53:11

分組構造劃分正規表示式的子表示式並捕獲輸入字串的子字串。下表列出了一些常見的分組構造:

分組構造 描述 模式 匹配
( subexpression ) 捕獲匹配的子表示式並為其分配一個從零開始的序號。 (\w)\1 "ee" 匹配 "deep"
(?< name >subexpression) 將匹配的子表示式捕獲到一個命名組中。 (?< double>\w)\k< double> "ee" 匹配 "deep"
(?< name1 -name2 >subexpression) 定義一個平衡組定義。 (((?'Open'\()[^\(\)]*)+((?'Close-Open'\))[^\(\)]*)+)*(?(Open)(?!))$ "((1-3)*(3-1))" 匹配 "3+2^((1-3)*(3-1))"
(?: subexpression) 定義一個非捕獲組。 Write(?:Line)? "WriteLine" 匹配 "Console.WriteLine()"
(?imnsx-imnsx:subexpression) 在子表示式中應用或禁用指定的選項。 A\d{2}(?i:\w+)\b "A12xl", "A12XL" 匹配 "A12xl A12XL a12xl"
(?= subexpression) 零寬度積極的前瞻斷言。 \w+(?=\.) "is", "ran""out" 匹配 "He is. The dog ran. The sun is out."
(?! subexpression) 零寬度負向檢視斷言。 \b(?!un)\w+\b "sure", "used" 匹配 "unsure sure unity used"
(?< =subexpression) 零寬度正向後斷言。 (?< =19)\d{2}\b "51", "03" 匹配 "1851 1999 1950 1905 2003"
(?< ! subexpression) 零寬度否定向後斷言。 (?< !19)\d{2}\b "ends", "ender" 匹配 "end sends endure lender"
(?> subexpression) Nonbacktracking(或「貪婪」)子表示式。 [13579](?>A+B+) "1ABB", "3ABB""5AB" 匹配 "1ABB 3ABBC 5AB 5AC"