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


有各种类型的字符、运算符和构造,使您可以定义正则表达式。

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

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

更新于: 2019年7月30日

217 次查看

开启您的职业生涯

通过完成课程获得认证

开始学习
广告