我对正则表达式非常陌生,而且我现在把它们放在一起有些麻烦。我此刻正在与R合作,我希望确保字符向量中的所有字符串长度为3.
所以说我有以下字符向量:
['1','23','113']
我可以使用什么正则表达式来确保每个字符串的长度为3
,如果它更少,请在开头添加0'
所以我想要的输出是:
['001','023','113']
对此答案的解释将非常感谢,谢谢。
编辑:字符向量中字符串的长度将大于或等于1且小于或等于3.
答案 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"