gpt4 book ai didi

javascript - 用于解析一些医疗数据的正则表达式

转载 作者:行者123 更新时间:2023-11-30 12:49:30 24 4
gpt4 key购买 nike

我已经花了几个小时寻找如何使用这个特殊的正则表达式魔术,但运气不佳。

我一直在尝试解析我自己的一些医疗数据(为什么不呢?)不幸的是,这些数据以没有标签(XML 或 HTML)的非结构化文本文档的形式出现。

具体来说,作为原型(prototype),我只想匹配我的 LDL 增量(胆固醇变化)的百分比。

在表单中它以几种不同的方式显示:

LDL change since last visit: 10%

LDL change since last visit:
10%

LDL change since last visit:

10%

几个小时以来,我一直在尝试使用原生 RegExp 引擎在 JavaScript 中执行此操作(比我想承认的时间长),但收效甚微。我绝不是 RegExp 专家,但我一直在研究这样的表达式:

(?<=LDL change since last visit)*(0*(100\.00|[0-9]?[0-9]\.[0-9]{0,2})%) 

我知道这在 JS 中不起作用,因为缺乏对 ?<= 的支持.我在 Ruby 中测试了这些,但即使那样它们也没有成功。任何人都可以通过一些方法帮助我完成这项工作吗?

编辑:

由于这个特定的指标在不同的区域出现了几次,我希望正则表达式能够匹配它们并让它们可以在多个组中访问。假设匹配组 0 对应于脂质概况部分,匹配组 1 对应于摘要。

Lipid profile
...
LDL change since last visit:

10%
...

Summary of Important Metrics
...
LDL change since last visit: 10%
...

最佳答案

lookbehind 解决方案很复杂,因为大多数语言只支持固定或有限长度的 lookbehind 断言。因此使用 capturing group 更容易反而。 (此外,您使用的回溯之后的 * 量词毫无意义)。

因为你真的不需要验证数字(对吗?),我会简单地做

regexp = /LDL change since last visit:\s*([\d.]+)%/
match = regexp.match(subject)
if match
match = match[1]
else
match = nil
end

如果您希望每个字符串有多个匹配项,请使用 .scan():

subject.scan(/LDL change since last visit:\s*([\d.]+)%/)

关于javascript - 用于解析一些医疗数据的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21450611/

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