You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET中使用Regex匹配特定格式的目标字符串

提取特定格式文本的.NET正则实现

需求

提取符合以下格式的文本:以1-3开头,后跟4位数字,接着是空格+字母E+6位数字,需在.NET环境中用Regex实现匹配。

正则表达式

[1-3][0-9]{4}(?: E[0-9]{6})?$

正则说明

  • [1-3]:匹配开头的1、2、3任意一个数字
  • [0-9]{4}:匹配后续连续4位数字
  • (?: E[0-9]{6})?$:非捕获组,匹配"空格+E+6位数字"的组合,?表示该部分为可选,$匹配行尾(需结合多行模式)

测试数据

successful my registration id is #12345 E112233 (匹配成功)
Successful my data is #22331 E001122          (匹配成功)
failing    12345                             (匹配失败)
  • 匹配成功:包含12345 E112233、22331 E001122的行
  • 匹配失败:仅包含12345的行(缺少"空格+E+6位数字"部分)

预期输出

12345 E112233

22331 E001122

.NET代码实现

var content = @"successful my registration id is #12345 E112233
Successful my data is #22331 E001122          
failing    12345";

// 初始化正则,启用多行模式
var regex = new Regex(@"[1-3]\d{4}([ ]E\d{6})?$", RegexOptions.Multiline);

// 获取所有匹配项(原代码仅获取第一个匹配,若需全部结果用Matches)
var matches = regex.Matches(content);
foreach (Match match in matches)
{
    Console.WriteLine(match.Value);
}

代码说明

  • RegexOptions.Multiline:使$匹配每行的结尾,而非整个字符串的结尾
  • Matches方法:获取所有符合条件的匹配结果,若仅需第一个匹配可使用Match方法

内容的提问来源于stack exchange,提问作者krishna mohan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 21:35:16