6

我有一个 html 菜单文件,其中包含由 chm 解码器提取的 html 页面列表。

(7,0,"Icons Used in This Book","final/pref04.html");
(8,0,"Command Syntax Conventions","final/pref05.html");
(9,0,"Introduction","final/pref06.html");
(10,0,"Part I: Introduction and Overview of Service","final/part01.html");
(11,10,"Chapter 1. Overview","final/ch01.html");
(12,11,"Technology Motivation","final/ch01lev1sec1.html");

我想从中创建一个 Calibre 的“目录”文件(HTML 文件,其中包含按所需顺序指向所有其他文件的链接)。最终文件应如下所示:

<a href="final/pref04.html">Icons Used in This Book</a><br/>
<a href="final/pref05.html">Command Syntax Conventions</a><br/>
.
.
.

所以首先我需要用正则表达式删除数字前缀,然后添加a href属性以制作超链接,并更改 URL 和标题位置。任何人都可以展示如何使用 Notepad++ 制作这个吗?

4

1 回答 1

5

我认为这会为你做这件事,我是基于 Mac 的,所以我没有记事本++,但这在 Dreamweaver 中有效。假设每个表达式都是基于一行的。

寻找:

\(.*?"(.*?)","(.*?)".*

代替:

<a href="$2">$1</a><br/>

文件:

(7,0,"Icons Used in This Book","final/pref04.html");
(8,0,"Command Syntax Conventions","final/pref05.html");
(9,0,"Introduction","final/pref06.html");
(10,0,"Part I: Introduction and Overview of Service","final/part01.html");
(11,10,"Chapter 1. Overview","final/ch01.html");
(12,11,"Technology Motivation","final/ch01lev1sec1.html");

全部替换后:

<a href="final/pref04.html">Icons Used in This Book</a><br/>
<a href="final/pref05.html">Command Syntax Conventions</a><br/>
<a href="final/pref06.html">Introduction</a><br/>
<a href="final/part01.html">Part I: Introduction and Overview of Service</a><br/>
<a href="final/ch01.html">Chapter 1. Overview</a><br/>
<a href="final/ch01lev1sec1.html">Technology Motivation</a><br/>

如果不是基于一行的更改.*.*?\n. 这应该使它在每个换行符之后停止。为了便于阅读,您可能还需要在替换中添加换行符。

如果您想修改它,可能也应该解释正则表达式......

第一个\是转义,(所以正则表达式知道寻找文字字符和非特殊的正则表达式分组。说找到每个字符,*?直到第一个";(.是任何单个字符,*前一个字符出现零次或多次,并?告诉它在下一个字符第一次出现时停止,")。最后.*说继续搜索。()周围的组.*?找到的值到$1and$2中。该数字与它在正则表达式中的顺序相关。

于 2015-05-22T00:29:13.840 回答