Grouping constructs mô tả sub-expression của regex và capture substring của input string.
| Grouping construct | Mô tả | Pattern | Matches |
|---|---|---|---|
| ( subexpression ) | Capture matched subexpression, gán số thứ tự zero-based | (\w)\1 | "ee" in "deep" |
| (?<name>subexpression) | Capture vào named group | (?<double>\w)\k<double> | "ee" in "deep" |
| (?<name1-name2>subexpression) | Balancing group definition | (((?'Open'\()[^\(\)]*)+((?'Close-Open'\))[^\(\)]*)+)*(?(Open)(?!))$ | "((1-3)*(3-1))" in "3+2^((1-3)*(3-1))" |
| (?: subexpression) | Non-capturing group | Write(?:Line)? | "WriteLine" in "Console.WriteLine()" |
| (?imnsx-imnsx:subexpression) | Apply/disable options trong subexpression | A\d{2}(?i:\w+)\b | "A12xl", "A12XL" in "A12xl A12XL a12xl" |
| (?= subexpression) | Zero-width positive lookahead | \w+(?=\.) | "is","ran","out" in "He is. The dog ran. The sun is out." |
| (?! subexpression) | Zero-width negative lookahead | \b(?!un)\w+\b | "sure","used" in "unsure sure unity used" |
| (?<=subexpression) | Zero-width positive lookbehind | (?<=19)\d{2}\b | "51","03" in "1851 1999 1950 1905 2003" |
| (?<!subexpression) | Zero-width negative lookbehind | (?<!19)\d{2}\b | "ends","ender" in "end sends endure lender" |
| (?>subexpression) | Nonbacktracking (greedy) subexpression | [13579](?>A+B+) | "1ABB","3ABB","5AB" in "1ABB 3ABBC 5AB 5AC" |