正则表达式并替换为数字和文本

时间:2019-04-16 09:47:39

标签: regex replace numbers calibre

在epub代码中,我有以下文字:

<span>Capitulo 1 - Apple is red</span>
<span>Capitulo 2 - Milk is white</span>
<span>Capitulo 3 - Weeds are green</span>

我需要将“ span”标签替换为“ h1”标签,并将“ capitulo”的所有实例替换为“ chapter”,以保留文本的其余部分。我尝试过这种口径,没有运气:

Find: <span>Capitulo (/d+) * </span>
Replace: <h1>Chapter /1 * </h1>

我该怎么办?

第二个问题: 如果我有这段文字:

<span>Capitulo 1 - apple is red, 5 chicas</span>
<span>Capitulo 2 - milk is white, 6 chicas</span>
<span>Capitulo 3 - weeds are green, 7 chicas</span>

我想获得:

<h1>Chapter1 - apple is red, 5 girls</h1>
<h2>Chapter2 - milk is white, 6 boys</h2>
<h3>Chapter3 - weeds are green, 7 men</h3>

我应该如何进行?

1 个答案:

答案 0 :(得分:2)

您可以使用

查找<span>Capitulo ([^<]*)</span>
替换<h1>Chapter \1</h1>

请参见regex demo和Regulex图:

enter image description here

([^<]*)部分与<以外的0个或更多字符匹配,因为[^<]negated character class,而(...)则是capturing group其内容可通过backreferences从替换模式访问(请参见替换中的\1)。