r - 将 gsub 用于 R 中字符串中的特定事件?

标签 r gsub

我有两个字符串:

mystring1 <- c("hello i am a cat.  just kidding, i'm not a cat i'm a cat.  dogs are the best animal.  not cats!")

mystring2 <- c("hello i am a cat.  just kidding, i'm not a cat i'm a cat.  but i have a cat friend that is a cat.")

我想将两个字符串中第三次出现的单词 cat 更改为 dog。

理想情况下,string1string2会读:
mystring1
[1] "hello i am a cat.  just kidding, i'm not a cat i'm a dog.  dogs are the best animal.  not cats!"

mystring2
[1] "hello i am a cat.  just kidding, i'm not a cat i'm a dog.  but i have a cat friend that is a cat."

这样做的最佳方法是什么?到现在为止我只用过 gsub替换字符,但我不知道这是否可用于替换特定出现的字符。

最佳答案

你可以用

mystring1 <- c("hello i am a cat.  just kidding, i'm not a cat i'm a cat.  dogs are the best animal.  not cats!")
mystring2 <- c("hello i am a cat.  just kidding, i'm not a cat i'm a cat.  but i have a cat friend that is a cat who knows a cat knowing a cat.")

sub("((cat.*?){2})\\bcat\\b", "\\1dog", mystring1, perl=TRUE)


这使

> sub("((cat.*?){2})\\bcat\\b", "\\1dog", c(mystring1, mystring2), perl=TRUE)
[1] "hello i am a cat.  just kidding, i'm not a cat i'm a dog.  dogs are the best animal.  not cats!"                                
[2] "hello i am a cat.  just kidding, i'm not a cat i'm a dog.  but i have a cat friend that is a cat who knows a cat knowing a cat."

关于r - 将 gsub 用于 R 中字符串中的特定事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62389341/

相关文章:

r - 比较 df 的两列并创建新列,如果值在增加,则在其他列中写入增加,在减少时写入相同

r - Plotly R 顺序散点图图例条目

r - 有谁知道我如何在 R 中处理大数据?

r - 在 R 中使用正则表达式提取子字符串

r - 如何使用 gsub 删除字符串中任意字符之前和之后的特定字符

r - 将文字描述放在 kable 旁边

R data.table 使用变量名在 group by 中赋值

regex - gsub() 中有超过 9 个反向引用

regex - 使用 gsub 删除 R 中第一个空格之前的所有字符串

ruby - 如何在 ruby​​ 中使用反斜杠和斜杠 "/"gsub 斜杠 "\/"