1
string <- c("tyuynmklabcwsqzp")

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

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

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

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

请帮忙。

4

2 回答 2

3

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

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

string <- c("tyuynmklabcwsqzp")
gsub("(ab)(c)", "\\2123", string)
# [1] "tyuynmklc123wsqzp"
于 2012-10-17T13:47:22.273 回答
2

尝试使用

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

gsub("ab(c)", "\\1123", string)   # abc → c123
于 2012-10-17T13:46:18.893 回答