0

我最近进行了一个将文档转换为 HTML 的项目。也就是说,客户给了我一个 .DOC 文件,我需要将内容转换为一个长的 HTML 文件——没有样式,没有 CSS,只需使用段落标签、标题标签等清理 HTML。

我发现一个应用程序在自动化它的第一部分方面做得很好。问题是我需要使用变量基于字符串进行一些高级查找和替换。

例如,我有正确转换的脚注。它们目前显示为上标数字,带有

我想更改脚注的显示方式。而不是第 6 个脚注的上标数字 6,我希望它显示(注 6)

要在整个文档(数百个脚注)上执行此操作,我想知道是否可以执行以下操作:

寻找:

<sup><a name="FN[0-9]" href="FNR[0-9]">[0-9]</a></sup>

代替:

<a name="FN%1" href="FNR%2">(Note %3)</a>

问题是,我找不到可以让我在替换区域中维护变量的查找和替换工具。我得到的只是上标 6 显示为(注 %3),以及所有其他脚注都在做同样的事情。

有人对我如何有效地完成任务有任何想法吗?

4

1 回答 1

0

在 Perl 中,它在命令行上大致如下所示(我没有测试过):

perl -i -p -e's{<sup><a name="(FN\d)" href="(FNR\d)">(\d)</a></sup>}{<a name="$1" href="$2">(Note $3)</a>}' filenames....

-i说“就地编辑这个文件”,-p意思是“在我们完成-e开关中的任何操作后打印每一行”。

那是假设您只在[0-9]. 如果要匹配 FN427,则更(FN\d)改为(FN\d+),例如。

这也假设您正在解析的 HTML 看起来完全一样。如果你得到一些 HTML <a href=... name=...(属性的顺序与你的顺序相反),那么它就会中断。在这种情况下,您需要使用 HTML 解析器。

我希望这能给你足够的开始。

于 2012-11-14T19:24:28.720 回答