理想情况下,在基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"