提取句子字符串中最后一个单词的最优雅方法是什么?
句子不以"."结尾.单词由空格分隔.
sentence <- "The quick brown fox"
TheFunction(sentence)
Run Code Online (Sandbox Code Playgroud)
应该回归:"狐狸"
如果可以使用简单的解决方案,我不想使用包.如果存在基于包的简单解决方案,那也没关系.
leo*_*leo 44
只是为了完整性:库字符串包含一个完全解决此问题的函数.
library(stringr)
sentence <- "The quick brown fox"
word(sentence,-1)
[1] "fox"
Run Code Online (Sandbox Code Playgroud)
Rol*_*and 23
tail(strsplit('this is a sentence',split=" ")[[1]],1)
Run Code Online (Sandbox Code Playgroud)
基本上是@SeñorO所建议的.
Jus*_*tin 12
x <- 'The quick brown fox'
sub('^.* ([[:alnum:]]+)$', '\\1', x)
Run Code Online (Sandbox Code Playgroud)
这将捕获字符串之前的最后一串数字和字符.
你也可以使用regexec
和regmatches
函数,但我发现sub
更干净:
m <- regexec('^.* ([[:alnum:]]+)$', x)
regmatches(x, m)
Run Code Online (Sandbox Code Playgroud)
见?regex
和?sub
获取更多信息.
Ric*_*ven 12
另一个打包选项stri_extract_last_words()
来自stringi
包
library(stringi)
stri_extract_last_words("The quick brown fox")
# [1] "fox"
Run Code Online (Sandbox Code Playgroud)
该函数还删除可能在句子末尾的任何标点符号.
stri_extract_last_words("The quick brown fox? ...")
# [1] "fox"
Run Code Online (Sandbox Code Playgroud)
顺便提一下,这是我能想到的最简单的答案:
library(stringr)
x <- 'The quick brown fox'
str_extract(x, '\\w+$')
#[1] "fox"
Run Code Online (Sandbox Code Playgroud)