r-替换字符串的元素3-一个模式后的10个位置



理想情况下,在基R中,我需要某种字符串操作,使我能够检测模式并在模式后更改字符串的3个位置。

example <- "when string says SOMETHING = #c792ea"

期望输出:

当字符串显示SOMETHING=#001628 时

我尝试过gsub,但我不确定如何让它替换模式后的字符。

如果它基于字符的位置,那么我们可以使用substring赋值

substring(example, 30) <- "#001628"
example
#[1] "when string says SOMETHING = #001628"

或者,如果我们需要找到以#开头的单词的位置

library(stringr)
posvec <- c(str_locate(example, "#\w+"))
substring(example, posvec[1], posvec[2]) <- "#001628"
# // or with 
# str_sub(example, posvec[1], posvec[2]) <- "#001628"

另一个选项是sub,以改变=和一个或多个空间(\s*(之后的子串

sub("=\s*.*", "= #001628", example)
#[1] "when string says SOMETHING = #001628"

最新更新