2014-12-02 2 views
3

Я использую Python для извлечения кодов ICD9. И я использую ниже регулярное выражениеРегулярное выражение | REGEX для кодов ICD9

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

Он улавливает рисунок, похожий на 137.98 или V35.62

Все отлично работает за исключением того, выражение также захватывает веса пациента как ICD9 кода.

Теперь то, что я заметил, есть масса почти всегда выступает как экс: 110.67 кг или килограмм или фунт или фунт

Как отделить ICD9 от веса!?

+0

Вы можете использовать отрицательный результат. [См. Этот вопрос] (http://stackoverflow.com/questions/12210807/what-does-mean) – HamZa

+0

Я пробовал большую часть материала здесь, в stackoverflow, но это не сработало. Может быть, я слишком тупой для регулярного выражения. – WeShall

+1

[Боб-твой дядя] (http://regex101.com/r/bP5tV0/1). – HamZa

ответ

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

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

+0

Дополнительная доработка в этой теме [здесь] (http://stackoverflow.com/questions/28200337/how-to-make-regex-ignore-a-pattern-following-a-specific-group) – WeShall

Смежные вопросы