gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 23:19:58 28 4
gpt4 key购买 nike

我需要在字符串 foo bar foo bar bar foo 中将所有 foo 替换为 bar 并将所有 bar 替换为 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)
但是我得到了 "bar bar bar bar bar bar" "foo foo foo foo foo foo"
问题: 如何更正我的代码以便获得 bar foo bar foo foo bar

最佳答案

一个选项是 split 并替换

str_c(setNames(v1, rpl)[str_split(my_str, "\\s+")[[1]]], collapse = ' ')
#[1] "bar foo bar foo foo bar"

或者另一个选项是 gsubfn
library(gsubfn)
gsubfn("(\\w+)", setNames(as.list(v1), rpl), my_str)
#[1] "bar foo bar foo foo bar"

关于用另一个替换一个正则表达式匹配,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65483645/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com