用正则表达式解释C#分组构造

可以使用各种类别的字符,运算符和构造来定义正则表达式。

其中之一是分组构造。分组构造描述正则表达式的子表达式并捕获输入字符串的子字符串。下表列出了分组构造。

分组构造描述模式匹配
(子表达式)捕获匹配的子表达式并为其分配一个从零开始的序数。(\ w)\ 1“ ee”中的“ deep”
(?<名称>子表达式)将匹配的子表达式捕获到命名组中。(?<double> \ w)\ k <double>“ ee”中的“ deep”
(?<name1 -name2>子表达式)定义平衡组定义。(((?'Open'\()[^ \(\)] *)+((?'Close-Open'\))[^ \(\)] *)+)*(?(Open)(? !))$“ 3 + 2 ^((1-3)*(3-1))”中的“((1-3)*(3-1))”
(?:子表达式)定义一个非捕获组。写(?:行)?“ Console.WriteLine()”中的“ WriteLine”
(?imnsx-imnsx:子表达式)应用或禁用子表达式中的指定选项A \ d {2}(?i:\ w +)\ b“ A12xl A12XL a12xl”中的“ A12xl”,“ A12XL”
(?=子表达式)零宽度正向超前断言。\ w +(?= \。)“他是。狗跑了。太阳出来了。”中的“是”,“奔跑”和“熄灭”。
(?!子表达式)零宽度否定超前声明。\ b(?!un)\ w + \ b“不确定使用”中的“确定”,“已使用”
(?<=子表达式)零宽度正向后断言。(?<= 19)\ d {2} \ b“ 1851 1999 1950 1905 2003”中的“ 51”,“ 03”
(?<!子表达式)零宽度负向后声明。(?<!19)\ d {2} \ b“结束”中的“结束”,“提供者”发送持久贷款人
(?>子表达式)非回溯(或“贪婪”)子表达式。[13579](?> A + B +)“ 1ABB 3ABBC 5AB 5AC”中的“ 1ABB”,“ 3ABB”和“ 5AB”