gpt4 book ai didi

python - 如何使正则表达式忽略特定组之后的模式

转载 作者:太空宇宙 更新时间:2023-11-04 03:37:35 25 4
gpt4 key购买 nike

我确实发布了 this question 2 个月前,获得了以下 REGEX 模式来捕获 ICD9 代码。预期仅捕获 ICD9 代码(例如:134.57 或 V23.54 或 E33.62)并忽略患者体重 134.57 磅或实验室结果如 127.20 mg/dL。

icdRegex = recomp('(V\d{2}\.\d{1,2}|\d{3}\.\d{1,2}|E\d{3}\.\d)(?!\s*(?:kg|lb|mg)s?)')

现在出现了异常。正则表达式的第二部分不会忽略后跟 kg、lb、mg 或任何其他停用词的模式。

我可以编写一些基本的正则表达式,但这对我的小脑袋来说有点太复杂了,需要帮助。

最佳答案

(?:(?:V\d{1,2}\.\d{1,2})|(?:\d{1,3}\.\d{1,2})|(?:E\d{1,2}\.\d+))(?!\d|(?:\s*(?:kg|lb|mg)s?))

试试这个。查看演示。

https://regex101.com/r/pM9yO9/12

修改了前瞻以在其中包含\d 以避免部分匹配

x="""134.57 or V23.54 or E33.62 134.57 lb or a lab result like 127.20 mg/dL"""
print re.findall(r"(?:(?:V\d{1,2}\.\d{1,2})|(?:\d{3}\.\d{1,2})|(?:E\d{1,2}\.\d+))(?!\d|(?:\s*(?:kg|lb|mg)s?))",x)

输出:['134.57', 'V23.54', 'E33.62']

根据数据测试的最终版本。

icdRegex = recomp("(?:(?:V\d{1,2}.\d{1,2})|(?:\d{3}.\d{1,2})| (?:E\d{1,2}.\d+))(?!\d|(?:\s*(?:kg|lb|mg)s?))"codes = findall(icdRegex, hit)

“命中”将是临床记录。

关于python - 如何使正则表达式忽略特定组之后的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28200337/

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