我正在使用 emeditor,我试图从法国维基百科转储 .xml 文件中分离出大约 200 万篇包含关键字 3 的文章(20GB,3.38 亿行,总共 480 万篇文章)。我想保留包含在 2 个关键字(关键字 1 和关键字 2)之间的文本,但前提是其中存在另一个关键字(关键字 3)。
关键字列表:
keyword1 = <page>
keyword2 = </page>
keyword3 = {{Infobox
示例 A:
keyword1 = <page>
text to consider without keyword3
keyword2 = </page>
结果 => 不要提取(或保留或拆分)这部分。
示例 B:
keyword1 = <page>
text to consider with keyword3
keyword2 = </page>
结果 => 提取(或保留或拆分)这部分。
Emeditor 的作者帮助我完成了以下工作:
Find (choose regular expression):
<page>(.*?{{Infobox.*?)</page>
Replace with
\1
And in Advanced... : search in 2500 lines
它似乎总体上工作正常,但有时会出现一些错误:我在这里加入一些小样本:https ://www.cjoint.com/c/JErsTJnVQpD 我还添加了一个小的期望结果 xml 文件。正如您在连接图像中看到的那样,蓝色突出显示的部分(2 篇文章)不应该包含在结果部分中,因为它们没有关键字{{Infobox . 注意:如果标签保留在结果中也会很好。提前致谢 ;)