我需要从需求文档中提取ICD 9值。 ICD 9值可以是单个代码,如V91.19
或范围441.00-441
。例如:
4. Peripheral vascular disorders - ICD-9-CM codes: 440.0-440.9, 441.00-441.9, 442.0-442.9, 443.1-443.9, 447.1, 557.1, 557.9, V43.4, V91.19, V9000, V91, M8440/0
最终,目标是在WHERE子句中使用这些值:
SELECT *
FROM ICD9
WHERE (
(CODE BETWEEN '440.0' AND '440.9')
OR (CODE BETWEEN '441.00' AND '441.9')
...
OR CODE IN ('447.1', '557.1', '557.9', 'V43.4', 'V91.19', 'V9000', 'V91', 'M8440/0')
)
这个正则表达式:
/[A-Z]?[0-9]+[\.\/]?[0-9]*/g
匹配:
447.1
)440.0
- 440.9
)4.
和ICD - 9
- CM - 不可取如何修改我的正则表达式:
答案 0 :(得分:1)
你的意思是这样吗?
[A-Z]?[0-9]+[\.\/]?(?=\d)[0-9]*
其中
(?=\d)
肯定前瞻 - 断言只有数字[0-9]才能匹配正则表达式同样的结果是,如果您删除最后一位数字的可选 *
部分,并将其替换为 +
:
[A-Z]?[0-9]+[\.\/]?[0-9]+
https://regex101.com/r/nK3zB3/2
关于我认为可能类似的范围和组:
(([A-Z]?[0-9]+[\.\/]?[0-9]+)[-]*(([A-Z]?[0-9]+[\.\/]?[0-9]+))?)
<强> Online Demo 强>