2014-12-02 34 views
3

我使用Python来提取ICD9代码。和我使用下面的正则表达式正则表达式| REGEX for ICD9 codes

icdRegex = recomp('V\d{2}\.\d{1,2}|\d{3}\.\d{1,2}|E\d{3}\.\d') 

它抓住了类似的模式,以137.98或V35.62

,一切工作正常,除了表达也抓住患者体重为ICD9代码。

现在我观察到,重量几乎总是显示为EX:110.67千克或公斤或磅或磅

如何从重量分开ICD9!?

+0

您可能会使用负向预测。 [看到这个问题](http://stackoverflow.com/questions/12210807/what-does-mean) – HamZa 2014-12-02 23:27:07

+0

我在这里尝试了大部分的东西在stackoverflow,但它不会工作。可能是我对正则表达式太愚蠢了。 – WeShall 2014-12-02 23:32:20

+1

[鲍勃的叔叔](http://regex101.com/r/bP5tV0/1)。 – HamZa 2014-12-02 23:36:48

回答

1

添加式断言像follwing:

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

缺少一些东西...它仍然捕获脂肪重量作为ICD9代码 – WeShall 2014-12-02 23:56:38

1

这里是哈姆扎对大家表达:

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

由于哈姆扎& Chapelo的帮忙。 欣赏它。

+0

伙计们...对于REGEX我们写了将近2个月的回来,在一种情况下失败。对于从0开始的数字,它捕捉错误的模式。例如:如果ICD9代码是032.9,则表达式将返回为329.对于以0开头的代码的任何修复! – WeShall 2015-01-27 21:29:50

+0

进一步细化到此线程[here](http://stackoverflow.com/questions/28200337/how-to-make-regex-ignore-a-pattern-following-a-specific-group) – WeShall 2015-01-29 17:15:46