R中的字符串-在字符串和数字之间插入所需/任意数字

R中的字符串-在字符串和数字之间插入所需/任意数字,r,regex,gsub,R,Regex,Gsub,我有一个如下所示的字符向量: questions <- c("question1" "question10" "question11" "question12" "question13" "question14" "question15" "question16" "question17", "question18" "question2" "question3" "question4" "question5" "question6" "question7" "ques

我有一个如下所示的字符向量:

questions <- c("question1"  "question10" "question11" "question12" 
"question13" "question14" "question15" "question16" "question17", 
"question18" "question2"  "question3"  "question4"  "question5"  "question6"  
"question7"  "question8"  "question9")
我想在问题和单个数字之间插入一个0,以便字符向量如下所示:

 questions <- c("question01"  "question10" "question11" "question12" 
 "question13" "question14" "question15" "question16" "question17", 
 "question18" "question02"  "question03"  "question04"  "question05"  
 "question06"  "question07"  "question08"  "question09")
请注意,与两位数(即问题10或问题18)关联的字符串问题不受影响

我不熟悉模式匹配。我尝试了以下代码:

gsubpattern=\\D*\\D{1},replacement=0\\1,x=mydf6$Question,perl=TRUE

然而,这并没有达到预期的效果

任何帮助都将不胜感激

试试看

gsub("(?<=[a-z])(\\d)$", "0\\1", mydf6$Question, perl = T)

此子字符串为零,但仅当字符串以一个数字结尾,前面有一个小写字母时才使用。

这很接近,但从问题中删除了n,并用0替换。所以,问题1变成了问题01?我认为它与perl=TRUE一起工作,即gsub?对不起,忘了添加它,您确实需要perl=TRUE。您能解释一下正则表达式的术语吗?当然,那么?您可以使用sub\\D\\D$,\\10\\2,mydf6$问题。如果字符串末尾的数字超过2位,这种类似于POST的方法将不起作用。