如何使用stringr为CBR后是0-9的字符串插入0,≥10的保持不变
使用stringr包实现字符串格式调整需求
完全可以用stringr包实现这个需求,核心是用str_replace()函数配合正则表达式,精准匹配需要修改的字符串并完成替换。
具体代码实现
# 先安装并加载stringr包(如果未安装的话) # install.packages("stringr") library(stringr) # 原始向量 vector <- c("CBR0", "CBR1", "CBR2", "CBR3", "CBR4", "CBR5", "CBR10", "CBR11") # 处理向量 processed_vector <- str_replace(vector, "^CBR(\\d)$", "CBR0\\1") # 查看结果 processed_vector
代码逻辑解释
- 正则表达式
^CBR(\\d)$的作用:^匹配字符串开头,确保从CBR开始匹配CBR固定匹配前缀内容(\\d)捕获单个0-9的数字,括号用于后续引用这个捕获到的内容$匹配字符串结尾,确保CBR后面只有这一个数字(自动排除CBR10、CBR11这类两位数字的字符串)
- 替换规则
CBR0\\1:把匹配到的字符串替换成CBR0加上之前捕获的单个数字,实现CBR和单个数字之间插入0的效果;两位数字的字符串因不匹配正则规则,会保持原样。
运行代码后得到的结果与你预期完全一致:
[1] "CBR00" "CBR01" "CBR02" "CBR03" "CBR04" "CBR05" "CBR10" "CBR11"
内容的提问来源于stack exchange,提问作者bhopalstiffs
相关产品推荐
相关产品推荐

