C#:取的多个药品批准文号中的一个

在C#中,如果想匹配一个字符串,比如"国药准字HJ20090910 国药准字HJ20090911",并找出其中所有以"国药准字"开头的部分,可以使用正则表达式(Regex)来实现这一功能。

方法1:使用正则表达式匹配所有以"国药准字"开头的子串

可以使用`Regex.Matches`方法来找到所有匹配的子串。这里是如何做的:

using System;

using System.Text.RegularExpressions;

class Program

{

static void Main()

{

string text = "国药准字HJ20090910 、国药准字HJ20090911";

string pattern = @"国药准字\w+"; // 使用\w+来匹配任何字母数字字符序列

MatchCollection matches = Regex.Matches(text, pattern);

foreach (Match match in matches)

{

Console.WriteLine(match.Value);

}

}

}

方法2:使用正则表达式捕获组(如果只关心"国药准字"后面的内容)

如果想要捕获"国药准字"后面的特定内容,比如字母和数字组合,可以使用捕获组:

using System;

using System.Text.RegularExpressions;

class Program

{

static void Main()

{

string text = "国药准字Jsabc 国药准字jsbsc";

string pattern = @"国药准字(\w+)"; // 使用(\w+)来捕获字母数字字符序列

MatchCollection matches = Regex.Matches(text, pattern);

foreach (Match match in matches)

{

Console.WriteLine(match.Groups1.Value); // 输出捕获组的内容

}

}

}

```

解释:

  • `@"..."` 是C#中的verbatim string literal,允许字符串跨多行且内部不需要转义字符。

  • `\w+` 匹配一个或多个字母数字字符(等同于a-zA-Z0-9_)。如果你想匹配中文和字母数字,可以使用`\\u4e00-\\u9fa5a-zA-Z0-9+`。

  • `MatchCollection` 是一个包含所有匹配项的集合。

  • `match.Groups1.Value` 用于获取第一个捕获组的内容,即"国药准字"后面的内容。

完整示例(包括中文字符和字母数字):

如果需要匹配包含中文字符和字母数字的组合,可以修改正则表达式如下:

string pattern = @"国药准字(\\u4e00-\\u9fa5a-zA-Z0-9+)"; // 匹配中文字符和字母数字的组合

这样,无论后面的字符是中文字符还是字母数字,都能被正确匹配。

相关推荐
用户298698530144 小时前
3 种方法,轻松将 PowerPoint 转换为 PDF 格式
人工智能·后端·c#
KindSuper_liu5 小时前
HybridCLR DHE及MetaVersion工作流核心概念
c#
淡海水5 小时前
01-08-运行时-虚方法分派与接口调用的底层实现
linux·windows·microsoft·c#·虚方法·vtable·vsd
李高钢5 小时前
C# WPF Prism 进阶(三):导航(Navigation)深入
开发语言·c#·wpf
我是苏苏6 小时前
C#基础:不写for循环的五种方式
数据结构·算法·c#
six_20 小时前
C# 上位机(持续更新中)
前端·面试·c#
吴可可1231 天前
多段线扩展数据的应用场景
c#
fangzhanpeng1681 天前
快速掌握C#语言基础知识点(1.基础数据类型)
开发语言·c#·1024程序员节
慧都小妮子1 天前
C# 实现AI合同审查:从读取、风险标注到批量签发
ai·自然语言处理·c#·.net·办公自动化·ai合同审查·文档ai代理