1

在进行了彻底的 Google 搜索之后,我一直在查看关于 SO 的许多建议结果。

上下文:我正在创建一个由 XHTML 文件组成的 epub。作者现在想要在书的开头插入一个尾注,导致现有的尾注必须重新编号。其中有 222 个,所以我宁愿不手动(两次!)。

出于我们的目的,这本书由六个文件组成:d1.xhtml通过 tod5.xhtmlnotes.xhtml,其中包含尾注文本。

使用正则表达式很容易识别音符编号:(>)([0-9]+)(<)

现在,我不知道如何增加它们。替换函数显然不能进行数学运算,所以我想我需要一种编程语言来完成“+1”部分。由于我不是程序员,我想我可能会问你们如何去做。

4

1 回答 1

1

你的电脑上有 Python 吗?如果没有,请立即获取(首选 Python 3,但这也适用于 Python 2):

import re
regex = re.compile(r">(\d+)<")

def replace(match):
   number = int(match.group(1)) + 1
   return ">{}<".format(number)

files = ["d1", "d2", "d3", "d4", "d5", "notes"]
for file in files:
    with open(file+".xhtml") as infile, open(file+"_new.xhtml", "w") as outfile:
        text = infile.read()
        outfile.write(regex.sub(replace, text))

我还没有测试过它,但我很确定它应该可以工作。

于 2013-09-16T11:18:06.780 回答