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

R语言如何获取指定模式每一次出现对应的行号

实现方案

你可以通过统计每行的模式匹配次数,再将行号按次数重复来实现需求,以下是两种可直接使用的实现方式:

基础R实现(无需额外安装包)

# 逐行匹配所有"<table"的位置,fixed=TRUE表示按固定字符串匹配,避免特殊字符解析问题
matches <- gregexpr("<table", html_file, fixed = TRUE)
# 统计每行的有效匹配次数,无匹配的行计数为0
match_counts <- vapply(matches, function(x) sum(x > 0), FUN.VALUE = integer(1))
# 按匹配次数重复对应行号,得到最终结果
line_num <- rep(seq_along(html_file), match_counts)

输出的line_num就会按照匹配次数重复对应行号,正好符合你期望的199 217 217 219效果。

stringr包实现(语法更简洁)

如果你习惯使用tidyverse生态的工具,可以用stringr::str_count直接统计每行匹配次数:

library(stringr)
# 统计每行`<table`的出现次数
match_counts <- str_count(html_file, fixed("<table"))
# 生成结果行号
line_num <- rep(seq_along(html_file), match_counts)

提示:如果你的匹配规则需要用到正则表达式,去掉代码中的fixed = TRUE参数即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:24:00