gpt4 book ai didi

r - 当我替换字符串的某些模式时,我可以使用正则表达式来替换要替换的内容吗?

转载 作者:行者123 更新时间:2023-12-04 07:13:32 25 4
gpt4 key购买 nike

我有一个关于替换字符串的问题。

string_before <- "aaajohn bbbjohn cccjohn johnaaa johnbbb johnccc"
string_after <- "aaajane bbbjane cccjane johnaaa johnbbb johnccc"

我想将上面的 string_before 替换成 string_after。(模式是 [^ ]+john,替换是 [^ ]+jane。)。有什么办法也可以使用正则表达式进行模式和替换吗?

最佳答案

你可以使用

gsub("(\\S+)john", "\\1jane", x)

参见 regex demo

在这里,(\\S+) 将除空格以外的任何 1+ 个字符捕获到第 1 组中,然后 john 被匹配,整个匹配被替换为第 1 组 (\1) 和 jane 子字符串中的值。

或者,如果你只是想匹配 john 而不是在“单词”的开头,你也可以考虑

gsub("\\Bjohn", "jane", x)    

其中 \B 是非单词边界位置(john 前面必须有单词 char、字母、数字或 _).

R demo :

string_before <- "aaajohn bbbjohn cccjohn johnaaa johnbbb johnccc"
string_after <- gsub("(\\S+)john", "\\1jane", string_before)
string_after
# => [1] "aaajane bbbjane cccjane johnaaa johnbbb johnccc"

关于r - 当我替换字符串的某些模式时,我可以使用正则表达式来替换要替换的内容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46826542/

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