Хорошо, регулярное выражение ниндзя.Я пытаюсь разработать шаблон для добавления гиперссылок на сноски в XHTML-файле ePub ebook.Проблема в том, что нумерация перезапускается в каждой главе, поэтому мне нужно добавить уникальный идентификатор к имени якоря, чтобы хешировать ссылку на него.
Учитывая (очень упрощенный) список, подобный этому:
<h2>Introduction</h2>
<p> 1 Endnote entry number one.</p>
<p> 2 Endnote entry number two.</p>
<p> 3 Endnote entry number three.</p>
<p> 4 Endnote entry number four.</p>
<h2>Chapter 1: The Beginning</h2>
<p> 1 Endnote entry number one.</p>
<p> 2 Endnote entry number two.</p>
<p> 3 Endnote entry number three.</p>
<p> 4 Endnote entry number four.</p>
Мне нужно превратить это во что-то вроде этого:
<h2>Introduction</h2>
<a name="endnote-introduction-1"></a><p> 1 Endnote entry number one.</p>
<a name="endnote-introduction-2"></a><p> 2 Endnote entry number two.</p>
<a name="endnote-introduction-3"></a><p> 3 Endnote entry number three.</p>
<a name="endnote-introduction-4"></a><p> 4 Endnote entry number four.</p>
<h2>Chapter 1: The Beginning</h2>
<a name="endnote-chapter-1-the-beginning-1"></a><p> 1 Endnote entry number one.</p>
<a name="endnote-chapter-1-the-beginning-2"></a><p> 2 Endnote entry number two.</p>
<a name="endnote-chapter-1-the-beginning-3"></a><p> 3 Endnote entry number three.</p>
<a name="endnote-chapter-1-the-beginning-4"></a><p> 4 Endnote entry number four.</p>
Очевидно, что будет необходим подобный поиск в реальном тексте книги, где каждая сноска будет связана с endnotes.xhtml#endnote-introduction-1
и т. д.
Самым большим препятствием является то, что поиск каждого совпадения начинается ПОСЛЕ окончания предыдущего поиска, поэтому, если вы не используете рекурсию, вы не можете сопоставить один и тот же бит (в данном случае заголовок) для более чем одногозапись.Однако мои попытки с рекурсией до сих пор приводили только к бесконечным циклам.
Я использую механизм grep TextWrangler, но если у вас есть решение в другом редакторе (например, vim), это тоже хорошо.
Спасибо!