c# 正则指引--字符组


在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]`来匹配字符串中的任何字母,并遍历所有匹配项。