我有几个固定格式的字符串。
格式为一个字母,后跟一个数字,例如A3B1C7D1。
但是,如果字母后面的数字为1,则字符串将写为A3BC7D。
我要做的是插入数字1,并将字符串从A3BC7D
转换为A3B1C7D1
。
我的示例数据是
strings <- c("A", "A3BC3", "A2B1C")
我想要得到的是:
strings_new <- c("A1", "A3B1C3", "A2B1C1")
非常感谢!
答案 0 :(得分:5)
另一个选择:
gsub("([A-Za-z])(?=[A-Za-z])|([A-Za-z])$", "\\1\\21", strings, perl = T)
输出:
[1] "A1" "A3B1C3" "A2B1C1"
或者,如果您只有大写字母,那就:
gsub("([A-Z])(?=[A-Z])|([A-Z])$", "\\1\\21", strings, perl = T)
基本上,这会找到后面跟着另一个字母或位于字符串末尾的字母,并用它们自己替换,同时添加所需的数字,在这种情况下为1
。
答案 1 :(得分:3)
查找所有(大写)字母(Refresh Token
)后没有数字,然后将其替换为该字符串+ [A-Z]
:
1
答案 2 :(得分:0)
strings[!grepl("[0-9]$",strings)]=paste0(strings[!grepl("[0-9]$",strings)],"1")
[1] "A1" "A3BC3" "A2B1C1"
我们首先grep
将所有不以数字结尾的职位粘贴1
。