.NET中使用Regex类进行文本匹配,需引入System.Text.RegularExpressions命名空间,通过IsMatch判断匹配,Match/Matches提取内容,Replace替换文本,建议编译常用表达式以提升性能。

在.NET中使用正则表达式进行文本匹配非常常见,主要通过 System.Text.RegularExpressions 命名空间中的 Regex 类来实现。它提供了灵活且强大的方式来查找、替换、分割和验证字符串内容。
引入命名空间
使用正则表达式前,先引入命名空间:
using System.Text.RegularExpressions;基本匹配操作
使用 Regex.IsMatch 方法判断字符串是否符合某个模式:
string input = "联系邮箱是 example@email.com";string pattern = @"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}";
bool isMatch = Regex.IsMatch(input, pattern);
Console.WriteLine(isMatch); // 输出: True
这个例子检测输入文本中是否包含一个符合邮箱格式的字符串。
提取匹配内容
使用 Regex.Match 或 Regex.Matches 获取实际匹配的文本:
Match match = Regex.Match(input, pattern);if (match.Success)
{
Console.WriteLine("找到邮箱: " + match.Value);
}
如果要找多个匹配项,用 Matches:
foreach (Match m in matches)
{
Console.WriteLine("匹配: " + m.Value);
}
替换匹配内容
使用 Regex.Replace 替换符合条件的文本:
string result = Regex.Replace(input, pattern, "[邮箱已隐藏]");Console.WriteLine(result); // 输出: 联系邮箱是 [邮箱已隐藏]
也可以使用委托动态生成替换内容:
string result = Regex.Replace(input, pattern, m => m.Value.ToUpper());常见正则表达式示例
- 手机号(中国大陆): ^1[3-9]\d{9}$
- 数字: \d+
- 中文字符: [\u4e00-\u9fa5]+
- URL: https?://[^\s]+
性能建议
如果同一个正则表达式会被多次使用,建议创建 Regex 实例并设置 RegexOptions.Compiled 提升性能:
static readonly Regex EmailRegex = new Regex(@"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}",
RegexOptions.Compiled | RegexOptions.IgnoreCase);
这样可以在程序启动时编译正则表达式,提高重复调用的效率。
基本上就这些。.NET 的正则功能强大,配合在线调试工具测试模式,能快速解决大多数文本处理问题。










