从文本行中提取句子

时间:2017-10-18 21:12:58

标签: r string text

我有多个句子结构如下:

text <- "09/11/2017\n                        Janssen noted September 11, 2017 that no further development planned."  

我的目标是提取除白色空间和&#34; mm / dd / yyyy \ n之外的所有内容。 到目前为止,我这样做:

text <-  substring(text, 20, last=100)

> text
[1] "                Janssen noted September 11, 2017 that no further development plan"

输出很接近,除了我希望忽略文本前的空白区域并保持每个单词之间的空白区域。

在我的现实生活中的例子:

> nchar <- nchar(df$text, type = "chars", allowNA = TRUE, keepNA = NA) # Count characters
> max(nchar,na.rm=TRUE)
[1] 81

我的最大文字是81长....所以我选择了一个故意错过日期的开始,然后使最后一个超过我的最大值。

不完美的做法。 我可以做一个长度(nchar)吗?

无论如何,寻找更好的解决方案。

欲望输出:

"Janssen noted September 11, 2017 that no further development planned."

3 个答案:

答案 0 :(得分:2)

怎么样?
gsub("\\d+/\\d+/\\d+\\n\\s+(.+)$", "\\1", text)

答案 1 :(得分:1)

根据您的开始,您可以使用id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY l ALL NULL NULL NULL NULL 18 1 PRIMARY <derived2> ALL NULL NULL NULL NULL 15 2 DERIVED pop_contor index NULL contor_IX1 141 NULL 206122 函数删除前导空格。

trimws

答案 2 :(得分:1)

这是另一个有效的方法:

gsub("^[\\W\\d+]+(.*)","\\1",text, perl=TRUE)

^从字符串的开头

开始

\\W匹配非单词字符 \\d+匹配一个或多个号码

将这两个放在括号中,这意味着匹配其中任何一个。

+不止一次匹配任何上述代词

(.*)匹配初始空格和数字之后的所有内容,并将其捕获到第1组中。

我们使用\\1

返回论坛