在C#中,正则表达式中的字符组(Character Class)用于匹配一组字符中的任意一个。字符组通过方括号`[]`来定义。下面是一些关于字符组的基础用法示例:
### 1. 匹配单个字符
- `[abc]`:匹配字符`a`、`b`或`c`中的任意一个。
### 2. 范围表示
- `[a-z]`:匹配任何小写字母。
- `[A-Z]`:匹配任何大写字母。
- `[0-9]`:匹配任何数字。
- `[a-zA-Z0-9]`:匹配任何字母或数字。
### 3. 排除字符组
通过在字符组的开头使用`^`符号,可以定义一个排除字符组,即匹配不在该组内的任何字符。
- `[^abc]`:匹配除了`a`、`b`或`c`之外的任何字符。
### 4. 特殊字符转义
在字符组内,如果你需要匹配`[`、`]`、`^`、`-`等特殊字符,你需要对它们进行转义(使用`\`前缀)。但在字符组的开始位置使用`^`时(表示排除),以及`-`用于指定范围时,它们不需要转义。
- `[\[]`:匹配左方括号`[`。
- `[\^]`:匹配`^`字符。
- `[\-]`:匹配连字符`-`。
### 5. 示例代码
下面是一个C#中使用正则表达式字符组的简单示例:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
string input = "Hello, World! 123";
string pattern = "[a-zA-Z]"; // 匹配任何字母
foreach (Match match in Regex.Matches(input, pattern))
{
Console.WriteLine(match.Value);
}
// 输出将是:
// H
// e
// l
// l
// o
//
// W
// o
// r
// l
// d
}
}
这个示例展示了如何使用字符组`[a-zA-Z]`来匹配字符串中的任何字母,并遍历所有匹配项。