如何在R中替换部分搜索字符串

时间:2012-10-17 13:38:39

标签: regex r

string <- c("tyuynmklabcwsqzp")

如果我的任务是用“abc123”替换每个“abc”,代码是,

gsub("abc", "\\1123", string)

但是,如果我必须搜索“abc”然后将其替换为“c123”,那我该怎么做呢?有没有办法将正则表达式分成几部分,以便我可以\ 2喜欢\ 1? 如果可能,那么我的命令就是,

gsub("abc", "\\2123", string).

请帮忙。

2 个答案:

答案 0 :(得分:3)

您可以使用括号将正则表达式的部分组合在一起,然后将重复运算符或反向引用应用于匹配的组。

在你的情况下,试试这个:

string <- c("tyuynmklabcwsqzp")
gsub("(ab)(c)", "\\2123", string)
# [1] "tyuynmklc123wsqzp"

答案 1 :(得分:2)

尝试使用

gsub("(abc)", "\\1123", string)   # abc → abc123

gsub("ab(c)", "\\1123", string)   # abc → c123