字符类减法: [base_group - [excluded_group]]
字符类减法将产生一组字符,该组字符是从一个字符类中排除另一个字符类中的字符的结果。
字符类减法表达式具有以下形式:
]]
excluded_group 部分是另一个正字符组或负字符组,或者是另一个字符类减法表达式(即,可以嵌套字符类减法表达式)。
[a-z-[m-p]]。
[abcmnoxyz]。
[\u0000-\uFFFF-[\s\p{P}\p{IsGreek}\x85]]。
[a-z-[0-9]] 的结果为初始基本组。这是因为,基本组(它是从“a”至“z”的字母组成的字符范围)不包含排除组(它是从“0”至“9”的十进制数组成的字符范围)中的任何字符。
^[0-9-[2468]]+$,该表达式匹配输入字符串中的零和奇数。正则表达式模式可以解释为下表中所示内容。
|
元素 |
说明 |
|---|---|
|
^ |
从输入字符串的开头处开始进行匹配。 |
|
[0-9-[2468]]+ |
换句话说,匹配零或奇数的一个或多个匹配项。 |
|
$ |
在输入字符串末尾结束匹配。 |
using System; using System.Text.RegularExpressions; public class Example { public static void Main() { string[] inputs = { "123", "13579753", "3557798", "335599901" }; string pattern = @"^[0-9-[2468]]+$"; foreach (string input in inputs) { Match match = Regex.Match(input, pattern); if (match.Success) Console.WriteLine(match.Value); } } } // The example displays the following output: // 13579753 // 335599901