如何使用Calibre在章节上执行正则表达式替换,包括其编号?

时间:2019-04-14 17:37:05

标签: regex replace epub calibre

我在epub文件中具有以下顺序:

CHAPTER 1
CHAPTER 2
CHAPTER 3

我想为每个标签添加一个head标签,所以我使用Calibre的替换模块:

Find: CHAPTER *
Replace with:<h1>CHAPTER</h1>

但是我只能得到这个:

<h1>CHAPTER</h1>1
<h1>CHAPTER</h1>2
<h1>CHAPTER</h1>3

...,其章号在h1标记之外。我在做什么错了?

1 个答案:

答案 0 :(得分:1)

Regular expressions wildcard characters 不同。

实际上,正则表达式CHAPTER *的意思是:“ CHAPTER后接一个空格或多个空格”。

您需要捕获字符串"CHAPTER",后接至少一个空白字符和一个数字(整数)。

所以,你应该写:

Find: CHAPTER (\d+)
Replace with:<h1>CHAPTER \1</h1>

在此,(\d+)是至少一个(+)位数字(\d)的序列。包围括号捕获此序列并将其存储为\1

您应该阅读口径的Quick reference for regexp syntax,以了解更多详细信息。