如何用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
相关产品推荐
相关产品推荐

