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

在R语言中提取特定模式单词:空格+t/r后接数字并返回NA

在R语言中提取符合特定模式的单词

可以使用stringr包的str_extract函数结合正则表达式实现需求,以下是具体方案:

实现代码

# 安装并加载stringr包(首次运行需安装)
if (!require(stringr)) {
  install.packages("stringr")
  library(stringr)
}

testvec <- c("random stuff here","words 10293","random t101rando 101 000","r10000","stuff i-10283","word1 t-12.34 stuff rand10293","random100 u-1000"," r10.0 x ","test x-2930"," T r.1234567","testword120num")

# 定义匹配模式的正则表达式
pattern <- "(?<=\\s)([tr](-?\\d*\\.?\\d+)[^\\s]*)"

# 提取符合条件的单词,无匹配则返回NA
result <- str_extract(testvec, pattern)

# 输出结果
result

正则表达式说明

  • (?<=\\s):正向预查,确保目标单词前有一个空格(排除字符串开头无空格的情况,比如示例中的r10000)
  • [tr]:匹配小写的t或r(若需支持大小写,可改为[tTrR])
  • (-?\\d*\\.?\\d+):匹配数字部分,支持:
    • 可选负号(-?)
    • 整数、小数(包括.123、123.、123.456、-123等格式)
  • [^\\s]*:捕获单词剩余的非空白字符(比如示例中的t101rando)

运行结果

执行代码后得到的结果与期望一致:

[1] NA          NA          "t101rando" NA          NA          "t-12.34"   NA          "r10.0"     NA          "r.1234567" NA         

内容的提问来源于stack exchange,提问作者Neal Barsch

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 17:47:05