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

在R中使用正则表达式提取指定位置的公司名称

在R中提取"SUBJECT COMPANY"下方第三行的公司名称

核心思路

通过正则表达式定位"SUBJECT COMPANY"标识,跳过其后两行,直接捕获第三行的公司名称。需要确保正则能正确识别换行符,并精准匹配目标行。

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

library(stringr)

# 读取目标txt文件为单个带换行的字符串
text_content <- read_file("your_target_file.txt")

# 用正则匹配并提取目标内容
# 正则逻辑:匹配标识行 → 跳过第一行无关内容 → 跳过第二行无关内容 → 捕获第三行
company_match <- str_match(text_content, "SUBJECT COMPANY\\r?\\n.*\\r?\\n.*\\r?\\n(.*)")

# 提取捕获到的公司名称([,2]对应第一个捕获组)
company_name <- company_match[, 2]

方法二:使用base R

# 读取文件并合并为带换行的字符串
text_content <- paste(readLines("your_target_file.txt"), collapse = "\n")

# 启用Perl正则模式,用\\K忽略前面的匹配内容,直接提取目标行
company_name <- regmatches(text_content, 
                           regexpr("SUBJECT COMPANY\\n.*\\n.*\\n\\K.*", 
                                   text_content, 
                                   perl = TRUE))[1]

关键说明

  • \\r?\\n兼容Windows(\r\n)和Unix(\n)格式的换行符,避免因系统差异导致匹配失败。
  • 如果标识行后的两行存在空白,.*会自动匹配空白内容,不影响第三行的提取。
  • 若文件中存在多个"SUBJECT COMPANY"标识,str_match会返回第一个匹配结果,如需提取所有结果可改用str_match_all。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 10:16:20