【发布时间】:2014-08-21 04:38:24
【问题描述】:
所以我有一组像下面这样在所有命名实体周围都有括号的文本,我想删除括号外的文本并保留所有标点符号。有什么想法吗?
Sample_Text <- "[PERSON Meredith Vieira] will become the first woman to host [MISC Olympics] primetime coverage on her own when she fills on Friday night for the ailing [PERSON Bob Costas] , who is battling a continuing eye infection. " It 's an honor to fill in for him , " [PERSON Vieira] said on TODAY Friday ."
理想情况下,我会在下面得到这个向量。
Entities <- ([PERSON Meredith Vieira] [MISC Olympics] [PERSON Bob Costas]. [PERSON Vieira].)
我的第一次尝试是找出两个括号之间的文本,但我没有得到文本,而且我的 REGEX 无法正常工作。然后我意识到我需要标点符号。这是我在下面的 REGEX 尝试。想法?
grep("\\[.*?\\]", "", d, perl=TRUE)
【问题讨论】:
-
看看 MrFlick 对我提出的这个问题的回答:stackoverflow.com/questions/24319930/…。简而言之,将
regexpr和regmatches与您的正则表达式一起使用来匹配方括号。 -
Alex,感谢 regexpr 和 regmatches 的建议!不完全合适,因为我真的想要括号内的文字以及一些标点符号。我根本不想替换它们,我想提取它们。它适用于我的 NLP 任务。不过谢谢,因为我不知道 regexpr 或 regmatches,可能很快就会有机会使用它们。