用另一个替换一个正则表达式匹配,反之亦然

vas*_*111 4 string replace r

我需要在字符串中替换foo bar foo bar bar fooall footobar和 all barto foo。所以结果应该是这样的bar foo bar foo foo bar

我试过这种方式:

library(stringr)

my_str <- "foo bar foo bar bar foo"
rslt <- str_replace_all(my_str, c("foo", "bar"), c("bar", "foo"))

print(rslt)
Run Code Online (Sandbox Code Playgroud)

但相反我得到了"bar bar bar bar bar bar" "foo foo foo foo foo foo".

问题:如何更正我的代码以便我得到bar foo bar foo foo bar

man*_*ark 5

使用str_replace_all多个替换并将第一个匹配项移动到临时值。

library(stringr)

str_replace_all(my_str, c("foo" = "tmp", "bar" = "foo", "tmp" = "bar"))

[1] "bar foo bar foo foo bar"
Run Code Online (Sandbox Code Playgroud)