如何在R语言中提取长度可变字符串后的指定两位数字字符
提取字母字符串后的两位数字的简便实现
针对你需要从字符向量中提取长度1-3的字母串之后的两位数字的需求,用R的正则表达式工具就能快速实现,代码非常简洁:
# 原始数据 animals <- c('B02420','SS9874','MZ990122','HRB1281','NO2451068') # 提取目标两位数字 digits <- sub("^([A-Za-z]{1,3})(\\d{2}).*", "\\2", animals)
运行后digits的结果为:c("02", "98", "99", "12", "24"),完全符合你的期望。
正则表达式说明
^([A-Za-z]{1,3}):匹配字符串开头的1-3个大小写字母,并将这部分作为第一个捕获组(\\d{2}):匹配紧接着的两位数字,作为第二个捕获组(这就是我们要提取的内容).*:匹配剩余的所有字符\\2:将整个字符串替换为第二个捕获组的内容,也就是我们需要的两位数字
如果需要将结果转为数值型,只需追加as.numeric(digits),但注意前导零会被自动去除(比如"02"会变成2),根据你的实际需求选择即可。
内容的提问来源于stack exchange,提问作者Alejandro
相关产品推荐
相关产品推荐

