R:更改为与字符串中前一个字符相同的字符

R: change to the same character as the previous character in a string

假设我有一个向量 c('JKA1','BP9C','SSTQ3WA'),我想将数字前面的字符更改为那个数字,这样 R returns 'JK11' 'B99C' 'SST33WA'。无论如何用正则表达式来做这个还是我最好使用 R 以外的东西?

匹配数字前的字母,然后通过捕获组捕获数字。然后将匹配的字符替换为 \1\1 表示组索引 1.

中存在的字符的两倍
> x <- c('JKA1','BP9C','SSTQ3WA')
> gsub("[A-Za-z](\d)", "\1\1", x)
[1] "JK11"    "B99C"    "SST33WA"

sub 函数就足够了。

> sub("[A-Z](\d)", "\1\1", x)
[1] "JK11"    "B99C"    "SST33WA"