Попытка настроить это регулярное выражение для извлечения результата медицинского отчета - PullRequest
0 голосов
/ 05 мая 2020

Попытка исправить это регулярное выражение Lung[ ]+Rads[ ]+Catagory[ ]+(\\d+[A-Z]*), чтобы извлечь 1, 1S, 2, 2S, 3, 3S, 4A, 4AS, 4B, 4BS, 4X, 4XS и потенциальное прибавление C к этим кратным а также из категории Lung Rads Catagory в неструктурированных радиологических отчетах, где язык может выглядеть так:

LUNG RADS CATEGORY 2
Lung RADS category 1, 
Lung RADS category 2. 
LUNG RADS CATEGORY 1
Lung RADS 3S.
Lung RADS Category 1:
Lung RADS Category 1 (S):
LUNG RADS CATEGORY 1 S
Lung RADS category: 2S.
Lung RADS: 2C
Lung RADS category 4B,
Lung RADS category 1S.
Lung RADS: 3.
Lung RADS category I
Lung RADS 2
LUNG RADS CATEGORY:I
LUNGRADS 2
LUNGRAD 2
LUNG-RAD 3

1 Ответ

0 голосов
/ 05 мая 2020

Вы можете использовать следующее регулярное выражение для соответствия интересующей части строки.

(?<=^(?:(?:Lung|LUNG) RADS:?(?: CATEGORY:?| [cC]ategory:?)? ?|LUNGRADS? |LUNG-RAD ))(?:\d[A-Z]?|[A-Z])(?![A-Z])

Javascript demo

Javascript 's Механизм регулярных выражений выполняет следующие операции.

(?<=                      begin positive lookbehind
  ^                       match beginning of line
  (?:                     begin a non-cap grp
    (?:Lung|LUNG) RADS:?  match 'Lung' or 'LUNG' followed by a a space,
                          then 'RADS', opt followed by ':
    (?:                   begin non-cap grp
      [ ]CATEGORY:?       match space, then 'CATEGORY', then opt ':"
      |                   or
      [ ][cC]ategory:?    match space then 'category' or 'Category'
                          then opt ':'
    )                     end non-cap grp
    ?                     opt match non-cap grp
    [ ]?                  opt match a space
    |                     or
    LUNGRADS?[ ]          match 'LUNGRAD ' or 'LUNGRADS '
    |                     or
    LUNG-RAD[ ]           match 'LUNG-RAD '       
  )                       end non-cap grp
)                         end positive lookbehind
(?:                       begin non-cap grp
  \d[A-Z]?                match digit then opt cap letter
  |                       or
  [A-Z]                   match one cap letter
)                         end non-cap grp
(?![A-Z])                 match a cap letter in a negative lookahead
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...