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

求助:无分隔符的R语言文本自动解析方案

R语言无分隔符品牌-编号文本解析方案

针对这类由「品牌: 编号」重复组成的文本,核心思路是利用正则表达式匹配每个完整的品牌-编号条目,再拆分出品牌和编号字段,避免直接按空格拆分的局限性。

方法实现(基于stringr包)

stringr包提供了便捷的字符串处理函数,适合快速实现解析:

1. 加载依赖包

library(stringr)

2. 解析基础示例文本

以第一个示例文本为例:

text <-  "JOHN DEERE: PMWF2126 NEW HOLLAND: 441702A1 HIFI: WE 2126 CUMMINS: 4907485"

# 提取所有品牌-编号条目
entries <- str_extract_all(text, "(.*?):\\s+(.*?)(?=\\s+[A-Z]+:|$)")[[1]]

# 拆分每个条目为品牌和编号
result <- str_split_fixed(entries, ":\\s+", 2)

# 转换为数据框并命名列
df <- as.data.frame(result, stringsAsFactors = FALSE)
colnames(df) <- c("品牌", "编号")

print(df)

输出结果:

品牌编号
JOHN DEEREPMWF2126
NEW HOLLAND441702A1
HIFIWE 2126
CUMMINS4907485

3. 处理复杂文本示例

针对包含特殊符号、重复品牌的复杂文本,同样适用上述逻辑:

text <- "LANSS: EF903R DARMET: VP-2726/S CASE: 133721A1 JOHN DEERE: RE68049 JCB: 32917302 WIX: 46490 TURBO: TR25902 HIFI: SA 16080 CATERPILLAR: 4431570 KOMATSU: Z7602BXK06 KOMATSU: Z7602BX106 KOMATSU: YM12991012501 KOMATSU: YM12991012500 KOMATSU: YM11900512571 KOMATSU: 6001851320 KOMATSU: 6001851300 KOMATSU: 3EB0234790 KOMATSU: 11900512571"

entries <- str_extract_all(text, "(.*?):\\s+(.*?)(?=\\s+[A-Z]+:|$)")[[1]]
result <- str_split_fixed(entries, ":\\s+", 2)
df_complex <- as.data.frame(result, stringsAsFactors = FALSE)
colnames(df_complex) <- c("品牌", "编号")

print(df_complex)

正则表达式说明

核心匹配模式"(.*?):\\s+(.*?)(?=\\s+[A-Z]+:|$)"的作用:

  • (.*?):\\s+:非贪婪匹配品牌部分(支持带空格的品牌名),直到遇到「冒号+空格」
  • (.*?):非贪婪匹配编号部分(支持带空格、斜杠、连字符的编号)
  • (?=\\s+[A-Z]+:|$):正向预查,确保编号部分在「空格+大写字母开头的品牌+冒号」或文本结尾处停止,避免拆分错误

Base R 替代实现

如果不想依赖第三方包,可使用Base R的正则函数:

text <-  "JOHN DEERE: PMWF2126 NEW HOLLAND: 441702A1 HIFI: WE 2126 CUMMINS: 4907485"

# 匹配所有条目位置
matches <- gregexpr("(.*?):\\s+(.*?)(?=\\s+[A-Z]+:|$)", text, perl = TRUE)
entries <- regmatches(text, matches)[[1]]

# 拆分品牌和编号
split_entries <- strsplit(entries, ":\\s+")
df_base <- do.call(rbind, split_entries)
df_base <- as.data.frame(df_base, stringsAsFactors = FALSE)
colnames(df_base) <- c("品牌", "编号")

print(df_base)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 02:45:17