在HTML中重新编号尾注

时间:2013-09-16 11:06:28

标签: html regex

在进行全面的Google搜索后,我一直在查看SO上的许多建议结果。

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

出于我们的目的,本书包含六个文件:d1.xhtmld5.xhtmlnotes.xhtml,其中包含尾注文本。

使用正则表达式(>)([0-9]+)(<)

可以轻松识别音符编号

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

1 个答案:

答案 0 :(得分: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))

我还没有测试过,但我确信它应该有用。