GeneratedRegex 是 .NET 7 引入的正则表达式源生成器,编译时将字符串字面量转换为高效、类型安全的静态方法,避免运行时编译开销和反射,提升性能并增强 IDE 支持。

GeneratedRegex 是 .NET 7 引入的正则表达式源生成器(Source Generator),它在编译时将 Regex 字符串字面量自动转换为高效、类型安全的静态方法,避免运行时编译开销和反射,提升性能并增强 IDE 支持(如智能提示、编译期错误检查)。
启用 GeneratedRegex 特性
确保项目使用 .NET 7 或更高版本,并在 .csproj 文件中启用正则源生成:
<PropertyGroup> <TargetFramework>net7.0</TargetFramework> <EnableDefaultRegexGenerator>true</EnableDefaultRegexGenerator> </PropertyGroup>
登录后复制
也可显式引用 System.Text.RegularExpressions.Generators(通常不需要,SDK 已内置)。
用 [GeneratedRegex] 标记静态 Regex 属性或方法
只需给一个 static Regex 字段/属性或返回 Regex 的静态方法加上 [GeneratedRegex] 特性,编译器就会自动生成优化实现:
✅ 推荐写法(属性):
using System.Text.RegularExpressions;
<p>public static class Patterns
{
[GeneratedRegex(@"\d{3}-\d{2}-\d{4}")] // 社保号格式
public static partial Regex SsnRegex();
}登录后复制
✅ 方法也支持(更灵活,可传选项):
[GeneratedRegex(@"\b\w+\b", RegexOptions.IgnoreCase)] public static partial Regex WordRegex();
登录后复制
⚠️ 注意:
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~