Regex и замена числами и текстами - PullRequest
2 голосов
/ 16 апреля 2019

В коде 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>

Что я могу сделать?

2-й вопрос: Если бы у меня был этот текст:

<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 Ответ

2 голосов
/ 16 апреля 2019

Вы можете использовать

Найти : <span>Capitulo ([^<]*)</span>
Заменить : <h1>Chapter \1</h1>

См. Демонстрационную версию regex и график Regulex:

enter image description here

Часть ([^<]*) соответствует любым 0 или более символам, отличным от <, поскольку [^<] является отрицательным классом символов и (...) образуют группа захвата , содержимое которой доступно из шаблона замены через обратные ссылки (см. \1 в замене).

...