gpt4 book ai didi

c# - 使用正则表达式匹配模式

转载 作者:行者123 更新时间:2023-12-02 04:44:54 25 4
gpt4 key购买 nike

我正在尝试使用正则表达式来检索 Title:Code 对。

(.*?\(CPT-.*?\)|.*?\(ICD-.*?\))

数据:

双侧感觉神经性听力损失(轻度)(ICD-389.18) 右手腕神经节囊肿 (ICD-727.41) S/P 将 DEPO MEDROL 注入(inject)到左肩关节 (CPT-20600)

我想捕捉:

  • 双侧感音神经性听力损失(轻度)(ICD-389.18)
  • 右手腕腱鞘囊肿 (ICD-727.41)
  • 左肩关节注入(inject) DEPO MEDROL (CPT-20600)

什么是正确的正则表达式?

最佳答案

像这样的模式怎么样:

.*?\((CPT|ICD)-[A-Z0-9.]+\)

这将匹配零个或多个任何字符,非贪婪,后跟 ( 后跟 CPTICD,然后连字符,后跟一个或多个大写拉丁字母、十进制数字或句点,后跟 )

请注意,我选择了 [A-Z0-9.]+,因为据我所知,所有当前的 ICD-9 codes , ICD-10 codes , 和 CPT codes符合该模式。

C# 代码可能看起来有点像这样:

var result = Regex.Matches(input, @".*?\((CPT|ICD)-[A-Z0-9.]+\)")
.Cast<Match>()
.Select(m => m.Value);

如果你想避免周围有任何空格,你只需修剪结果字符串(m => m.Value.Trim()),或者确保匹配的前缀以非 -通过在前面放置一个 \S 空白字符,如下所示:

var result = Regex.Matches(input, @"\S.*?\((CPT|ICD)-[A-Z0-9.]+\)")
.Cast<Match>()
.Select(m => m.Value);

或者如果您需要处理像 (ICD-100)(ICD-200) 这样的输入,则使用负前瞻:

var result = Regex.Matches(input, @"(?!\s).*?\((CPT|ICD)-[A-Z0-9.]+\)")
.Cast<Match>()
.Select(m => m.Value);

您可以看到正在运行的 demonstration here .

关于c# - 使用正则表达式匹配模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19985670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com