C#怎么使用GeneratedRegex C# 7正则表达式源生成器

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

C#怎么使用GeneratedRegex C# 7正则表达式源生成器-第1张图片-佛山资讯网

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();

登录后复制

⚠️ 注意:

标签: word 正则表达式 c# .net

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~