使用R中的regexpr提取句子

时间:2017-02-01 17:33:18

标签: r regex nlp

从文本正文中,我想用正则表达式提取一个以“Meds:”开头的句子。我使用的模式是:

    "[:blank:]Meds:[^.]*\\." 

这样我的句子就会在“Meds:”之前开始,然后是更多的单词并在句号结束时结束。它没有像我希望的那样工作。

以下是发生的事情:

[1] Patient X came with the complain of pain Meds:ASA 81mg PO qd, 
toprol XL 25 mg PO Gen: Healthy appearing, overweight.
  1. 我的输出并没有从“Meds:”这个词开始,而是在它之前的整个句子,并继续到下一个句子,直到它与下一个'句号'匹配。所以它看起来像这样:

  2. 我希望停止在'25 mg PO',但我知道它没有这样做,因为它在那里找不到'期间'。

    任何建议都将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

text = 'Patient X came with the complain of pain Meds:ASA 81mg PO qd, toprol XL 25 mg PO Gen: Healthy appearing, overweight.'
gsub(".*(Meds:[^.:]*)\\s+[^:]+:.*" , '\\1', text)
# [1] "Meds:ASA 81mg PO qd, \ntoprol XL 25 mg PO"

答案 1 :(得分:-1)

这是你可以做到的一种方式:

\sMeds:([^.:]*)\s\w+:

您可以对其进行测试here