# C# 正则测试器（.NET）

在线测试 .NET/C# 正则表达式：命名组 ((?…))、IgnoreCase/Multiline/Singleline 选项、匹配高亮、捕获组表格、可直接粘贴的 C# 代码和 IgnorePatternWhitespace 预览。

> 标准页面: https://elysiatools.com/zh/tools/csharp-regex-tester

- **分类:** Development

- **关键词:** c# 正则测试, 正则表达式 在线, .net 正则, 命名分组, regexoptions

## 概述

专为 C# 与 System.Text.RegularExpressions 的 .NET 方言调校的正则测试器。按 C# 的写法输入——命名组 (?…) 或 (?'year'…)、反向引用 \\k、RegexOptions 标志——测试器将其转译到平台的 ECMAScript 引擎执行，报告每个匹配、每个捕获组（含命名）以及 ${name} / $1 替换语法的替换预览，并生成带正确 RegexOptions 与 match.Groups\["name"\] 访问的 C# 代码。报告同时展示转译后的模式，让你清楚实际运行的内容。.NET 特性已内置：\\d \\w \\s 默认 Unicode（可切换）、lookbehind 可变长度；平衡组 (?…) 与 \[a-z-\[aeiou\]\] 类减法会被识别并给出解释性拒绝而不是静默错配。注意 .NET 会先为未命名组编号再为命名组编号——本仿真（与多数引擎一样）不重现该行为，顺序敏感时请用命名组。

## 输入项

- **正则表达式** (text): (?\\d{4})-(?\\d{2})
- **测试字符串** (textarea): Paste the text to match against…
- **i — 忽略大小写** (checkbox)
- **m — 多行模式** (checkbox)
- **s — 单行模式（. 匹配换行）** (checkbox)
- **n — 显式捕获** (checkbox)
- **x — 忽略模式空白** (checkbox)
- **g — 查找全部匹配** (checkbox)
- **替换模板（可选）** (text): ${name} / $1
- **Unicode 字符类（\d \w \s 匹配 Unicode）** (checkbox)

## 适用场景

- 在编写 C# 应用程序前，需要验证包含命名分组 (?...) 或反向引用 \\k 的 .NET 正则表达式。
- 需要测试带 RegexOptions（如 IgnoreCase、Multiline、Singleline、IgnorePatternWhitespace）的模式匹配效果。
- 调试字符串替换逻辑，预览使用 ${name} 或 $1 替换模板后的输出结果并获取对应 C# 调用代码。

## 工作原理

- 在输入框中填入 .NET 正则表达式模式和待测试的目标文本。
- 勾选匹配选项，例如忽略大小写 (i)、多行模式 (m)、单行模式 (s)、显式捕获 (n)、忽略空白 (x) 或 Unicode 字符类。
- 若有替换需求，填入替换模板（如 ${group} 或 $1）。
- 系统自动执行匹配分析，高亮文本中的命中区域，展示命名捕获组表格，并生成包含 RegexOptions 的 C# 示例代码。

## 使用案例

- 日志文件解析：提取日志中的时间戳、日志级别与模块名称等命名结构化字段。
- HTML/XML 标签匹配：使用反向引用确保开闭标签名称一致并批量提取标签体内容。
- 敏感信息脱敏：利用替换模板将匹配到的手机号、邮箱或证件号重构为脱敏格式。

## 常见问题

### 本工具支持哪些 .NET 命名捕获组语法？

支持 (?...) 与 (?'name'...) 命名语法，以及 \\k 和 \\k'name' 反向引用语法。

### Unicode 字符类选项有什么作用？

开启后，\d、\w、\s 将匹配符合 Unicode 标准的全部数字、单词字符和空白符，与 .NET 默认行为保持一致。

### 替换模板支持怎样的占位符语法？

支持使用 ${name} 引用命名捕获组，以及使用 $1、$2 等编号引用未命名捕获组。

### 支持 .NET 平衡组和类减法语法吗？

平衡组 (?...) 与字符集减法 \[a-z-\[aeiou\]\] 会被系统识别并提示解释性说明，避免产生歧义匹配。

### 生成的 C# 代码包含哪些内容？

生成代码包含 Regex 实例化、对应的 RegexOptions 枚举配置，以及通过 match.Groups["name"] 读取命名组的代码示例。

## 相关工具

- [Java 正则测试器](https://elysiatools.com/zh/tools/java-regex-tester): 在线测试 java.util.regex 正则：(?…) 命名组、占有优先量词与原子组、Pattern 标志、\\d 的 ASCII 与 UNICODE\_CHARACTER\_CLASS 语义、可直接粘贴的 Java 代码。
- [Python 正则测试器（re 模块）](https://elysiatools.com/zh/tools/python-regex-tester): 在线测试 Python re 模块正则：(?P…) 命名组、(?P=name) 反向引用、VERBOSE 模式、findall 行为与 \\g 替换模板——附可直接粘贴的 Python 代码。
- [正则表达式解释器](https://elysiatools.com/zh/tools/ai-regex-explainer): 使用 AI 将正则表达式分解为可读的解释
- [PCRE2 正则测试器](https://elysiatools.com/zh/tools/pcre-regex-tester): 在线测试 PCRE2 正则：全套命名组语法（(?P)、(?)、(?\\u0027n\\u0027)）、占有优先量词、原子组、\\A \\z \\h 简写——附 pcre2grep 与 C API 代码片段。
- [多规则批量匹配](https://elysiatools.com/zh/tools/multi-pattern-matcher): 一次性对文本执行多个正则表达式模式匹配
- [命名分组测试器](https://elysiatools.com/zh/tools/named-group-tester): 解析并显示正则表达式中的命名捕获组
- [正则执行追踪器](https://elysiatools.com/zh/tools/regex-debugger): 逐步展示正则表达式如何匹配字符串：可视化每次匹配尝试、部分成功、回溯与捕获——是理解正则行为的认知工具，而非只看最终结果
- [正则表达式测试](https://elysiatools.com/zh/tools/regex-tester): 测试正则表达式匹配文本

## 示例

- [正则表达式命名捕获组](https://elysiatools.com/zh/samples/regex-named-groups): 使用命名捕获组从文本中提取结构化数据的正则表达式模式集合。命名组通过为捕获的部分分配有意义的名称，使模式更易读和更易维护。
- [正则替换示例](https://elysiatools.com/zh/samples/regex-replace): 用于文本转换和数据清洗的常用正则替换模式集合
- [常用正则表达式](https://elysiatools.com/zh/samples/regex-samples): 用于验证和匹配的常用正则表达式模式
- [正则表达式模式替代方案](https://elysiatools.com/zh/samples/regex-alternatives): 多种编写相同正则表达式模式的方法，在可读性、性能和准确性方面有不同的权衡
