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

在R语言中提取字符串中-t与.html之间数字的方法求助

R语言提取目标字符串的解决方案

下面提供两种简单的方法来提取你需要的字符:

方法一:使用stringr包(推荐)

stringr是R中处理字符串的常用工具包,语法简洁直观:

首先确保安装并加载包:

install.packages("stringr")
library(stringr)

然后执行提取操作:

data <- c("mies-are-going-straight-to-hell-t120497.html?sid=0e4851bc16db",
          "oss-on-wall-street-cryptocurrency-t120542.html?sid=1c1328efb1e39b40123679e173f184a1")

# 用零宽断言直接捕获目标数字
result <- str_extract(data, "(?<=-t)\\d+(?=\\.html)")

执行后result的结果就是:

> result
[1] "120497" "120542"

方法二:使用基础R函数(无需额外安装包)

如果不想安装第三方包,可以用基础R的regmatches和regexpr组合:

data <- c("mies-are-going-straight-to-hell-t120497.html?sid=0e4851bc16db",
          "oss-on-wall-street-cryptocurrency-t120542.html?sid=1c1328efb1e39b40123679e173f184a1")

result <- regmatches(data, regexpr("(?<=-t)\\d+(?=\\.html)", data, perl = TRUE))

同样能得到目标结果:

> result
[1] "120497" "120542"

正则说明

两种方法用到的正则(?<=-t)\\d+(?=\\.html)是零宽断言:

  • (?<=-t):匹配前面是-t的位置(不包含-t本身)
  • \\d+:匹配一个或多个数字
  • (?=\\.html):匹配后面是.html的位置(不包含.html本身)

这样就能精准提取-t之后、.html之前的数字部分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 06:25:28