Замена знаков абзаца

Автор Leonid-ooo, 23 октября 2011, 23:04

0 Пользователи и 1 гость просматривают эту тему.

VlhOwn

Цитата: Leonid-ooo от 27 октября 2011, 22:50
К сожалению он вообще не ищет.
Господа, давайте отделим мух от котлет.
Поиск на основе регулярных выражений использует именно механизм регулярных выражений (Regular Expressions), который работает в пределах одной строки (в терминах ООО - одного абзаца).
Метасимвол "^" в регулярных выражениях обозначает "начало строки (абзаца)", "$" - "конец строки (абзаца)", выражение - "^$" - соответственно пустую строку (пустой абзац).
Двух пустых строк в пределах одной строки не бывает.
Никаких символов за метасимволом "$" в регулярном выражении находиться не может.

MSO в отличие от OOo, насколько я помню, использует не механизм регулярных выражений, а поиск специальных символов. Именно поэтому там можно находить два или больше следующих подряд знаков абзаца.

Как убирать убирать последовательности пустых абзацев в ООо?
1. заменяем все пустые абзацы ^$ на выражения заведомо в документе не встречающиеся, например на !#@@@#!. (При этом пользователи LO памятуют, что кнопочка "заменить все" приводит к вылету LO, и сначала жмут "найти все", а потом "заменить".)
2. заменяем все выражения (!#@@@#!){2,} на $1
3. заменяем все выражения !#@@@#! на \n

Чтобы вообще избавиться от пустых абзацев, достаточно в п.3 делать замену не на \n, а на пустую строку.

Leonid-ooo

Цитата: Клио от 27 октября 2011, 22:05Чтобы найти 2 нужно ввести в строку поиска ^$\p

эту комбинацию OpenOffice.org не находит! ((( см. скриншот
Что делать?


[вложение удалено Администратором]

Leonid-ooo

Ура!
сработала простая замена всех ^$ на пустую строку.
не забывать ставить птичку в "Регулярное выражение"!
См. 2 сриншота.

[вложение удалено Администратором]

RFJ

Цитата: JohnSUN от 24 октября 2011, 19:26Поиск и замена, регулярные выражения - да, строка поиска ^$, Найти все, Закрыть, Delete.
Первый же ответ был правильным.

VlhOwn