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

das*_*asf 4 regex r char

假设我有一个向量c('JKA1','BP9C','SSTQ3WA'),我想将数字前的字符更改为该数字,以便R返回'JK11' 'B99C' 'SST33WA'.无论如何使用正则表达式进行此操作还是我最好使用除R之外的其他内容?

Avi*_*Raj 7

匹配数字前的字母,然后通过捕获组捕获数字.然后将匹配的字符替换为\\1\\1组索引1中存在的双倍字符.

> x <- c('JKA1','BP9C','SSTQ3WA')
> gsub("[A-Za-z](\\d)", "\\1\\1", x)
[1] "JK11"    "B99C"    "SST33WA"
Run Code Online (Sandbox Code Playgroud)

sub 对于这种情况,功能就足够了.

> sub("[A-Z](\\d)", "\\1\\1", x)
[1] "JK11"    "B99C"    "SST33WA"
Run Code Online (Sandbox Code Playgroud)