多段文本列拆分:批量转换学术文献为结构化表格(正则需求)
正则方案:批量将学术文献转为结构化表格
核心正则表达式(匹配单条文献)
针对你描述的固定格式文献,用以下正则全局匹配,可精准捕获所有字段:
标题为《([^》]+)》,作者([^,]+),院校([^,]+),发表年份(\d{4}),含多行摘要([\s\S]+?)(?=(?:标题为|$))
捕获组对应字段:
$1:标题$2:作者$3:院校$4:发表年份$5:多行摘要(保留原始换行)
批量转换步骤(以VS Code为例)
- 把所有文献内容粘贴到VS Code的空白文件中。
- 打开「查找替换」面板(快捷键
Ctrl+H),勾选「正则表达式」和「全局匹配」选项。 - 查找框输入上述正则,替换框输入以下模板(自动生成编号):
| ${matchIndex + 1} | $1 | $2 | $3 | $4 | $5 |
- 点击「全部替换」,所有条目会自动转为表格行。
- 在最上方手动添加表格表头:
| 编号 | 标题 | 作者 | 院校 | 发表年份 | 摘要 | | --- | --- | --- | --- | --- | --- |
示例转换效果
| 编号 | 标题 | 作者 | 院校 | 发表年份 | 摘要 |
|---|---|---|---|---|---|
| 1 | Confessionalized Optics: The Society of Jesus and Early Modern Optics | Purkaple, Brent | University of Oklahoma | 2022 | (此处为原多行摘要内容,换行格式完全保留) |
注意事项
- 若摘要末尾存在多余空白,可在正则末尾添加
\s*优化匹配:(?=(?:标题为|$))改为(?=\s*(?:标题为|$)) - 其他工具(如Notepad++、Sublime Text)操作逻辑一致,仅自动编号的实现方式略有不同(Notepad++需用插件实现自动编号)
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

