Visual Basic 分组结构
分组结构描述正则表达式的子表达式并捕获输入字符串的子字符串。
下表列出了分组结构:
分组结构 | 描述 | 模式 | 匹配 |
---|---|---|---|
( subexpression ) | 捕获匹配的子表达式并为其分配一个从 0 开始的序号. | (\w)\1 | "deep" 中的 "ee" |
(?< name >subexpression) | 将匹配的子表达式捕获到命名组中. | (?< double>\w)\k< double> | "deep" 中的 "ee" |
(?< name1 -name2 >subexpression) | 定义一个平衡组. | (((?'Open'()[^()]*)+((?'Close-Open'))[^()]*)+)*(?(Open)(?!))$ | "3+2^((1-3)*(3-1))" 中的 "((1-3)*(3-1))" |
(?: subexpression) | 定义个非捕获组 | Write(?:Line)? | "Console.WriteLine()" 中的 "WriteLine" |
(?imnsx-imnsx:subexpression) | 应用或禁用 子表达式 中的指定项 | A\d{2}(?i:\w+)\b | "A12xl A12XL a12xl" 中的 "A12xl", "A12XL" |
(?= subexpression) | 零宽正向先行断言 | \w+(?=.) | "He is. The dog ran. The sun is out." 中的 "is", "ran", 和 "out" |
(?! subexpression) | 零宽负向先行断言 | \b(?!un)\w+\b | "unsure sure unity used" 中的 "sure", "used" |
(?< =subexpression) | 零宽正向后行断言 | (?< =19)\d{2}\b | "1851 1999 1950 1905 2003" 中的 "51", "03" |
(?< ! subexpression) | 零宽负向后行断言 | (?< !19)\d{2}\b | "end sends endure lender" 中的 "ends", "ender" |
(?> subexpression) | 非回溯子表达式 | [13579](?>A+B+) | "1ABB 3ABBC 5AB 5AC" 中的 "1ABB", "3ABB", 和 "5AB" |