c#正则表达式
推荐
在 C# 中,可以使用 `System.Text.RegularExpressions` 命名空间提供的正则表达式类来进行模式匹配和文本处理。下面是一些常用的正则表达式操作:
1. 匹配:
- `Regex.IsMatch(input, pattern)`:判断输入字符串是否匹配给定的正则表达式模式。
- `Regex.Match(input, pattern)`:从输入字符串中查找第一个与正则表达式模式匹配的子串。
- `Regex.Matches(input, pattern)`:从输入字符串中查找所有与正则表达式模式匹配的子串。
2. 替换:
- `Regex.Replace(input, pattern, replacement)`:将输入字符串中与正则表达式模式匹配的部分替换为指定的替换字符串。
- `Regex.Replace(input, pattern, matchEvaluator)`:使用指定的替换方法对输入字符串中与正则表达式模式匹配的部分进行替换。
3. 分割:
- `Regex.Split(input, pattern)`:根据正则表达式模式将输入字符串拆分为子串数组。
4. 捕获组:
- `Regex.Match(input, pattern).Groups`:获取匹配结果中的捕获组,可以通过索引或名称访问。
5. 常用的正则表达式语法:
- `.`:匹配除换行符以外的任意字符。
- `*`:匹配前面的元素零次或多次。
- `+`:匹配前面的元素一次或多次。
- `?`:匹配前面的元素零次或一次。
- `[]`:定义字符集,匹配其中任意一个字符。
- `()`:创建捕获组。
下面是一个示例,演示如何使用正则表达式匹配和替换字符串:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
string input = "Hello, 123 World!";
string pattern = @"\d+";
// 判断是否匹配数字
bool isMatch = Regex.IsMatch(input, pattern);
Console.WriteLine($"Is Match: {isMatch}");
// 查找第一个匹配的数字
Match match = Regex.Match(input, pattern);
if (match.Success)
{
Console.WriteLine($"Matched Value: {match.Value}");
}
// 替换所有数字为 #
string replaced = Regex.Replace(input, pattern, "#");
Console.WriteLine($"Replaced: {replaced}");
// 拆分字符串
string[] parts = Regex.Split(input, @"\W+");
foreach (string part in parts)
{
Console.WriteLine($"Part: {part}");
}
}
}
以上示例展示了 C# 中正则表达式的基本用法,可以根据实际需求使用更复杂的正则表达式模式和操作来处理文本数据。