正则表达式 Regex 入门
正则表达式在文本处理中非常强大:匹配、提取、替换。C# 的 Regex 类提供完整支持。
自己最常用的场景:提取日期、手机号、邮箱、数字。关键技巧是分组(捕获组)用 () 括起来,匹配后通过 Groups[n] 取出。
注意:1) Regex 是线程安全的,静态复用;2) 不要在循环里 new Regex;3) 复杂正则要注释,否则半年后自己都看不懂。
代码示例
using System.Text.RegularExpressions;
// 匹配日期
string text = "订单日期 2024-09-15,金额 1234.56 元";
var m = Regex.Match(text, @"(\d{4})-(\d{2})-(\d{2})");
if (m.Success)
{
Console.WriteLine("年:" + m.Groups[1].Value); // 2024
Console.WriteLine("月:" + m.Groups[2].Value); // 09
Console.WriteLine("日:" + m.Groups[3].Value); // 15
}
// 提取所有数字
var nums = Regex.Matches(text, @"\d+\.?\d*")
.Select(x => x.Value)
.ToList();
// 替换
string replaced = Regex.Replace(text, @"\d{4}-\d{2}-\d{2}", "[日期]");
// 验证邮箱
bool IsEmail(string input) =>
Regex.IsMatch(input, @"^[\w.-]+@[\w.-]+\.\w+$");
Console.WriteLine(IsEmail("test@example.com")); // True
学习小结:以上是我学习这个知识点时的笔记和心得。技术学习没有捷径,多写多练多踩坑,自然就掌握了。如果这篇笔记对你有帮助,欢迎继续看看其他文章。