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

如何用R语言提取Excel CSV文件中括号内外的英西双语文本?

分离CSV中西语与英文文本的实现方案

核心思路

通过正则表达式精准匹配方括号内的西语文本,提取后剩余内容即为英文;借助Python的CSV处理工具完成文件的读取与结果导出。

所需工具

  • csv:Python内置模块,轻量处理CSV文件
  • re:Python内置正则模块,用于匹配提取目标文本
  • (可选)pandas:简化CSV操作,适合快速处理小规模数据(100行完全适配)

实现代码

基础版(内置模块)

无需额外安装依赖,适合纯原生Python环境:

import csv
import re

# 正则规则:匹配方括号内的文本(非贪婪模式,避免多括号冲突)
spanish_regex = re.compile(r'\[(.*?)\]')

english_data = []
spanish_data = []

# 读取原始CSV
with open('input.csv', 'r', encoding='utf-8') as in_file:
    reader = csv.DictReader(in_file)
    # 替换为你实际的对话列名,比如'transcript'
    target_col = 'transcript'
    
    for row in reader:
        content = row[target_col]
        # 提取所有西语片段并拼接
        spanish_parts = spanish_regex.findall(content)
        spanish_text = ' '.join(spanish_parts)
        spanish_data.append({'spanish': spanish_text})
        
        # 移除方括号及内部内容,清理多余空格得到英文
        english_text = re.sub(r'\[.*?\]', '', content).strip()
        english_text = re.sub(r'\s+', ' ', english_text)
        english_data.append({'english': english_text})

# 导出英文文件
with open('english_result.csv', 'w', newline='', encoding='utf-8') as out_file:
    writer = csv.DictWriter(out_file, fieldnames=['english'])
    writer.writeheader()
    writer.writerows(english_data)

# 导出西语文件
with open('spanish_result.csv', 'w', newline='', encoding='utf-8') as out_file:
    writer = csv.DictWriter(out_file, fieldnames=['spanish'])
    writer.writeheader()
    writer.writerows(spanish_data)

简化版(pandas)

代码更简洁,需先安装pandas(执行pip install pandas):

import pandas as pd
import re

# 读取CSV
df = pd.read_csv('input.csv', encoding='utf-8')
spanish_regex = re.compile(r'\[(.*?)\]')

# 提取西语和英文
df['spanish'] = df['transcript'].apply(lambda x: ' '.join(spanish_regex.findall(x)))
df['english'] = df['transcript'].apply(lambda x: re.sub(r'\[.*?\]', '', x).strip().replace('\s+', ' ', regex=True))

# 导出结果
df[['english']].to_csv('english_result.csv', index=False, encoding='utf-8')
df[['spanish']].to_csv('spanish_result.csv', index=False, encoding='utf-8')

注意事项

  • 替换代码中的input.csv为你的实际文件名,transcript为对话列的真实列名
  • 正则\[(.*?)\]采用非贪婪匹配,可正确处理同一段落内多个方括号的情况
  • 清理英文文本时的re.sub(r'\s+', ' ', english_text)用于移除移除方括号后残留的多余空格

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 20:15:28