在每个字母后面的字符串中添加数字

Wan*_*ang 7 regex string r

我有几个固定格式的字符串.

格式是一个字母后跟一个数字,例如A3B1C7D1.

但是,如果字母后面的数字是1,则该字符串将写为A3BC7D.

我想要做的是插入数字1,并将字符串转换A3BC7DA3B1C7D1.

我的示例数据是

strings <- c("A", "A3BC3", "A2B1C")
Run Code Online (Sandbox Code Playgroud)

我想得到的是:

strings_new <- c("A1", "A3B1C3", "A2B1C1")
Run Code Online (Sandbox Code Playgroud)

非常感谢!

arg*_*t91 5

另外一个选项:

gsub("([A-Za-z])(?=[A-Za-z])|([A-Za-z])$", "\\1\\21", strings, perl = T)
Run Code Online (Sandbox Code Playgroud)

输出:

[1] "A1"     "A3B1C3" "A2B1C1"
Run Code Online (Sandbox Code Playgroud)

或者,如果你只有大写字母,只需:

gsub("([A-Z])(?=[A-Z])|([A-Z])$", "\\1\\21", strings, perl = T)
Run Code Online (Sandbox Code Playgroud)

基本上,这会找到后跟另一个字母或位于字符串末尾的字母,并将它们替换为自己,同时添加所需的数字,1在这种情况下.