You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 09:34:54