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

Regex R:更改为与字符串中上一个字符相同的字符,regex,r,char,Regex,R,Char,假设我有一个向量c('JKA1','BP9C','SSTQ3WA'),我想把数字前面的字符改成这个数字,这样R返回'JK11''B99C''SST33WA'。用正则表达式还是使用R以外的东西更好?匹配数字前的字母,然后通过捕获组捕获数字。然后将匹配的字符替换为\\1\\1表示组索引1中出现的字符的两倍 > x <- c('JKA1','BP9C','SSTQ3WA') > gsub("[A-Za-z](\\d)", "\\1\\1", x) [1] "JK11" "B99

假设我有一个向量
c('JKA1','BP9C','SSTQ3WA')
,我想把数字前面的字符改成这个数字,这样R返回
'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(“[A-Z](?=(\\d))”,“\\1”,x,perl=T)
> sub("[A-Z](\\d)", "\\1\\1", x)
[1] "JK11"    "B99C"    "SST33WA"