我有多个句子结构如下:
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."
答案 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