stringr str_replace是否有多个模式和替换?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stringr str_replace是否有多个模式和替换?相关的知识,希望对你有一定的参考价值。

我尝试过

> str_replace("abcdef", c("b", "d"), c(b="B", d="D"))
[1] "aBcdef" "abcDef"

希望

[1] "aBcDef"

我们如何通过对stringr::str_replace的一个函数调用将每个模式替换为特定的替换?

答案

我会把它放在管道中

str_replace('abcdef', 'b', 'B') %>% str_replace(., 'd', 'D')
另一答案

此匹配每个字符,如果等于b,则将其替换为B;如果等于d,则将其替换为D,否则将其保留。

library(gsubfn)
gsubfn(".", list(b="B", d="D"), "abcdef")
## [1] "aBcDef"

这些也起作用:

gsubfn("[bd]", list(b="B", d="D"), "abcdef")
## [1] "aBcDef"

gsubfn("[bd]", toupper, "abcdef")
## [1] "aBcDef"

# only needs base R
chartr("bd", "BD", "abcdef")
## [1] "aBcDef"

以上是关于stringr str_replace是否有多个模式和替换?的主要内容,如果未能解决你的问题,请参考以下文章

R语言stringr包str_extract函数检查数据是否包含特定模式实战

同一个 mutate() 中的多个 str_replace 函数

str_replace 怎样才只替换一次 - 技术问答

utf-8 (PHP, str_replace) 中是不是有不同类型的双引号?

PHP str_replace 函数

R语言学习14-stringr包