Калибр поиск и замена, но сохранить один символ
Я пытаюсь удалить много
</p><p class="calibre1">
</p><p[^>]*>[a-z].....
НО, мне, конечно, нужно заменить строчные буквы также на то, что было раньше... Есть ли хороший способ сделать это, или мне нужно написать свою собственную функцию регулярного выражения для этого??
1 ответ
Вы ищете позитивный взгляд.
Ищи </p><p[^>]*>(?=[a-z])
и заменить его на [empty string]
,
(?=[a-z])
гарантирует, что он совпадает только в том случае, если за ним следует строчная буква, но он не использует указанную букву, удаляя только </p><p[^>]*>
часть.
Я использовал решение @Fabian N. в Caliber для очистки после преобразования PDF-файлов в файлы EPUB. Мне пришлось немного изменить, добавив новую строку (например,\n
) между закрывающим тегом абзаца в конце одной строки и последующим открывающим тегом в начале следующей строки, как показано здесь:
</p>\n<p class="calibre1">(?=[a-z])
Я бы подумал, что (</p>
) охватывал бы новую строку (\n
), но он не совпадал в Caliber, пока я не добавил новую строку.
Спасибо Фабиану за информацию о позитивном взгляде на будущее; именно то, что мне было нужно.