解释正则表达式中的 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" 中 |
广告