正则表达式辅助功能
JetBrains Rider 提供了一套丰富的工具来处理 .NET 正则表达式。 您可以快速分析现有表达式,查找并修复错误。 在输入新表达式时,JetBrains Rider 会帮助您自动完成和验证。
字符串文本中的正则表达式
默认情况下,JetBrains Rider 仅处理 模式 参数中的正则表达式,以及 Regex 类的方法。 然而,包含正则表达式的字符串可以定义在不同的位置:字符串常量、字段、其他方法的参数等。 如果您希望 JetBrains Rider 将字符串作为正则表达式处理,您有三种不同的选项:
使用上下文操作:将光标放在字符串中,按 Alt+Enter 并选择 标记为 .NET 正则表达式。
JetBrains Rider 将标记与字符串对应的符号范围为正则表达式,将此范围保存在其内部数据库中,并在包含文件更改时持续跟踪。 这种方式非常快速且直接,但有两个缺点:范围可能在外部文件更改(如 VCS 合并)后丢失,并且以这种方式标记的注入仅在本地跟踪。
如果您稍后决定禁用将字符串作为正则表达式处理,可以使用 移除 .NET 正则表达式标记 上下文操作。
另一种方法是使用
[RegexPatternAttribute]从 JetBrains.Annotations 注释您的自定义方法参数、公共字段或属性为正则表达式。如果您的项目目标是 .NET 7 或更高版本,您还可以使用 [StringSyntaxAttribute] 和相应的构造函数:
[StringSyntax(StringSyntaxAttribute.Regex)]。JetBrains Rider 将在方法调用和赋值中将相应的参数处理为正则表达式:

第三种方法是在字符串文本之前添加注释
/*language=regexp|jsregexp*/。 这些注释需要一些输入,可能会污染您的代码,但另一方面,它们可以让阅读您代码的每个人清楚您的意图,它们不会丢失,并且任何打开您的代码的人都可以在标记的字符串中使用 JetBrains Rider 的相同功能。 顺便说一下,这些注释的格式与 基于 IntelliJ 平台的 IDE 兼容。
语法高亮显示
JetBrains Rider 会高亮正则表达式中的语法结构、错误和冗余:

高亮颜色具有以下含义:
浅蓝色 – 字符类、锚点和量词
浅绿色 – 分组结构
橙色 – 集合结构
粉色和浅粉色 – 转义序列
绿色 – 注释
红色带波浪下划线 – 错误
蓝色波浪下划线 – 警告
当您将光标放置在分隔符之一时,组、组名称和集合中的匹配括号会被高亮。
默认情况下,JetBrains Rider 会高亮所有非逐字字符串中的正确和错误转义序列:
![]()
修复错误
要修复正则表达式中的错误,请将光标放在红色高亮处,按 Alt+Enter ,然后选择相应的 快速修复。
正则表达式错误最常见的例子是误用转义字符。

JetBrains Rider 帮助您自动修复错误:

IntelliSense
JetBrains Rider 为几乎所有 .NET 正则表达式结构提供智能感知支持。 在补全列表中,每个结构都会显示简要描述。

在正则表达式中,您可以使用以下类型的智能感知:
在使用 Match.Groups 属性 时,您也可以从 JetBrains Rider 的智能感知中受益。 JetBrains Rider 会检测表达式中的组名称,并在补全列表中建议它们:

提取预编译的正则表达式
如果您需要重用一个在 正则表达式 类的静态方法中使用的正则表达式,您可以将其提取为预编译的正则表达式。
要提取正则表达式,请将光标放在方法调用中的任意位置,按 Alt+Enter 并选择 转换为预编译正则表达式 上下文操作。
例如,您可以从 模式 参数中提取 IsMatch 方法的正则表达式:
应用上下文操作后,模式将被提取到一个静态字段中: