C# - 分组结构



分组结构描述正则表达式的子表达式并捕获输入字符串的子字符串。下表列出了分组结构:

分组结构 描述 模式 匹配
( 子表达式 ) 捕获匹配的子表达式并为其分配一个基于零的序数。 (\w)\1 "deep"中的"ee"
(?< name >子表达式) 将匹配的子表达式捕获到命名组中。 (?< double>\w)\k< double> "deep"中的"ee"
(?< name1 -name2 >子表达式) 定义平衡组定义。 (((?'Open'\()[^\(\)]*)+((?'Close-Open'\))[^\(\)]*)+)*(?(Open)(?!))$ "3+2^((1-3)*(3-1))"中的"((1-3)*(3-1))"
(?: 子表达式) 定义非捕获组。 Write(?:Line)? "Console.WriteLine()"中的"WriteLine"
(?imnsx-imnsx:子表达式) 子表达式内应用或禁用指定的选项。 A\d{2}(?i:\w+)\b "A12xl", "A12XL" in "A12xl A12XL a12xl"
(?= 子表达式) 零宽正向断言。 \w+(?=\.) "He is. The dog ran. The sun is out."中的"is", "ran"和"out"
(?! 子表达式) 零宽负向断言。 \b(?!un)\w+\b "unsure sure unity used"中的"sure", "used"
(?< =子表达式) 零宽正向后顾断言。 (?< =19)\d{2}\b "1851 1999 1950 1905 2003"中的"99", "50", "05"
(?< ! 子表达式) 零宽负向后顾断言。 (?< !19)\d{2}\b "1851 1999 1950 1905 2003"中的"51", "03"
(?> 子表达式) 非回溯(或“贪婪”)子表达式。 [13579](?>A+B+) "1ABB 3ABBC 5AB 5AC"中的"1ABB", "3ABB"和"5AB"
csharp_regular_expressions.htm
广告