在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
相关产品推荐
相关产品推荐

