正则表达式将0添加到字符串的开头

时间:2014-05-18 09:51:15

标签: regex string r

我对正则表达式非常陌生,而且我现在把它们放在一起有些麻烦。我此刻正在与R合作,我希望确保字符向量中的所有字符串长度为3.

所以说我有以下字符向量:

['1','23','113']

我可以使用什么正则表达式来确保每个字符串的长度为3,如果它更少,请在开头添加0'

所以我想要的输出是:

['001','023','113']

对此答案的解释将非常感谢,谢谢。

编辑:字符向量中字符串的长度将大于或等于1且小于或等于3.

1 个答案:

答案 0 :(得分:3)

而不是正则表达式,我会查看sprintf函数:

x <- c(1, 23, 113)
x
# [1]   1  23 113
sprintf("%03d", x)
# [1] "001" "023" "113"

在处理角色向量时,您可能需要先使用as.numeric

X <- as.character(x)
sprintf("%03d", X) ## Won't work
# Error in sprintf("%03d", X) : 
#   invalid format '%03d'; use format %s for character objects
sprintf("%03d", as.numeric(X))
# [1] "001" "023" "113"