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

csharpprogrammingserver side programming更新于 2025/11/30 23:33:00

有各种类别的字符、运算符和构造可用于定义正则表达式。

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

分组构造 描述 模式 匹配
( subexpression ) 捕获匹配的子表达式并为其分配一个从零开始的序数。 (\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) 在subexpression中应用或禁用指定的选项 A\d{2}(?i:\w+)\b "A12xl A12XL a12xl"中的"A12xl"、"A12XL"
(?= subexpression) 零宽度正向前瞻断言。 \w+(?=\.) "is", "ran", and "out" in "He is. The dog ran. The sun is 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 "ends"、"ender"在"end send endure lender"中
(?> subexpression) 非回溯(或"贪婪")子表达式。 [13579](?>A+B+) "1ABB", "1ABB 3ABBC 5AB 5AC"中的"3ABB"和"5AB"

相关文章