C#分组构造正则表达式
分组构造界定输入字符串的正则表达式和捕获子子表达式。下表列出的分组构造:
分组构造 | 描述 | 模式 | 匹配 |
---|---|---|---|
( subexpression ) | 捕获匹配的子表达式,并为其分配一个从零开始的序号 | (w)1 | "ee" 在 "deep" 中 |
(?< name >subexpression) | 捕获匹配的子表达式到一个名为group的组中 | (?< 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) | 适用或禁止在指定的选项 subexpression. | Ad{2}(?i:w+) | "A12xl", "A12XL" 在 "A12xl A12XL a12xl" 中 |
(?= subexpression) | 零宽度正前向断言 | w+(?=.) | "is", "ran", and "out" 在"He is. The dog ran. The sun is out." 中 |
(?! subexpression) | 零宽度负前向断言 | (?!un)w+ | "sure", "used" 在"unsure sure unity used" 中 |
(?< =subexpression) | 零宽度正反向预搜索断言 | (?< =19)d{2} | "51", "03" 在 "1851 1999 1950 1905 2003" 中 |
(?< ! subexpression) | 零宽度负向后断言 | (?< !19)d{2} | "ends", "ender" 在 "end sends endure lender" 中 |
(?> subexpression) | 非回溯(与“贪婪”)子表达式 | [13579](?>A+B+) | "1ABB", "3ABB", 和 "5AB" in "1ABB 3ABBC 5AB 5AC" |