Str <- "I love chocolate pudding"
pos <- 8
我需要在 pos 8 返回以字母 c 开头的单词,即巧克力。我怎样才能做到这一点?
使用stringr
和忽略 'starting with 'c' 条件:
Str %>%
str_sub(pos) %>%
word(1)
library(stringr)
str_extract(Str, "(?<=[\\w\\s]{7})\\bc\\w+\\b")
[1] "chocolate"
该解决方案使用str_extract
了正向lookbehind ,(?<=[\\w\\s]{7})
可以沿着这些线进行修饰:“如果您在左侧看到由字母数字字符( ( ) 以及作为单词首字母出现的字母。\\w
\\s
\\b
c
或者,使用sub
和反向引用:
sub(".{7}(\\bc\\w+\\b).*", "\\1", Str)
[1] "chocolate"
您可以使用substring
获得第 8 个字符之后的所有内容。然后使用删除空间后的所有内容gsub
:
gsub(" .*", "", substring(Str, pos))
如果您需要检查“c”:
Str <- "I love dogs"
ifelse(
substr(Str, pos, pos) == "c",
gsub(" .*", "", substring(Str, pos)),
""
)