如何使用JS删除CSV文件中指定A-B区间内的内容?
用Node.js批量处理CSV中的HTML内容
针对你需要批量清理CSV中
标签多余内容的需求,可以用Node.js结合正则表达式快速实现,以下是具体步骤:
1. 准备依赖
首先安装处理CSV的工具库:
npm install csv-parser csv-writer
2. 编写处理脚本
创建一个clean-csv.js文件,内容如下:
const fs = require('fs'); const csv = require('csv-parser'); const createCsvWriter = require('csv-writer').createObjectCsvWriter; // 替换成你的输入输出文件路径 const INPUT_FILE = '原始文件.csv'; const OUTPUT_FILE = '处理后文件.csv'; // 配置CSV列信息(根据你的实际列名调整,这里假设内容列名为content) const csvWriter = createCsvWriter({ path: OUTPUT_FILE, header: [{ id: 'content', title: 'content' }] }); // 正则匹配需要清理的<h2>结构 const h2CleanRegex = /<h2 id="[^"]+">([^<]+)<a class="autolink-header".*?<\/a><\/h2>/gs; const processedData = []; // 读取并处理CSV fs.createReadStream(INPUT_FILE) .pipe(csv()) .on('data', (row) => { // 对content字段执行替换操作 row.content = row.content.replace(h2CleanRegex, '<h2>$1</h2>'); processedData.push(row); }) .on('end', () => { csvWriter.writeRecords(processedData) .then(() => console.log(`处理完成,结果已保存到 ${OUTPUT_FILE}`)); });
3. 执行脚本
在终端运行:
node clean-csv.js
正则说明
<h2 id="[^"]+">:匹配带id属性的起始标签
([^<]+):捕获内的标题文本(直到第一个<符号)
<a class="autolink-header".*?<\/a><\/h2>:匹配从autolink链接到的所有内容(非贪婪匹配避免跨标签)- 替换为
<h2>$1</h2>:保留捕获的标题文本,生成干净的标签
如果你的CSV包含多列,只需要修改脚本中处理的字段名即可;如果CSV结构简单(无嵌套逗号),也可以直接用纯文件读写+正则替换,无需依赖库:
const fs = require('fs'); const content = fs.readFileSync('原始文件.csv', 'utf8'); const cleanedContent = content.replace(/<h2 id="[^"]+">([^<]+)<a class="autolink-header".*?<\/a><\/h2>/gs, '<h2>$1</h2>'); fs.writeFileSync('处理后文件.csv', cleanedContent); console.log('处理完成');
内容的提问来源于stack exchange,提问作者Dawid Fleszewski
相关产品推荐
相关产品推荐

