Поиск и замена в текстовой переменной с помощью регулярных выражений

Автор neft, 6 ноября 2011, 17:26

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

Рыбка Рио

Цитата: neft от  9 ноября 2011, 14:38можно заменить на
Код:
stmp = Replace(Results(i).String,"\n","<LINE_BREAK>")
У меня на Linux это не работает.

Ещё нужно учитывать, что выражение "(.|\n)+" пропускает пустые абзацы. А вот какое нужно написать выражение, чтобы искало одновременно и пустые абзацы? У меня пока не получилось найти.
ubuntu 12.04 + LibO3.6.0

neft


Рыбка Рио

Кстати, вот равносильные записи (.|\n)+:
(.|\n){0,}, (.|\n)*, ^(.|\n)+$, ^(.|\n)*$, (.|\n){0,}$ ... Но не ищут они пустых абзацев.

Как вариант, можно перед процедурой заменить в документе все пустые абзацы, на абзацы, к примеру с одним пробелом, а после процедуры вернуть всё на место.

А если нужно просто преобразовать текст в другой текстовый формат, то лучше наверное открыть скрытый документ (если документ уже сохранен, то можно открыть его второй раз как шаблон, а если ещё не сохранён, то можно открыть пустой документ Writer и скопировать в него текст). Затем просто заменить все абзацы на <PARAGRAPH_BREAK>, разрывы строки на <LINE_BREAK>, и т.д. А потом сохранить файл как текст и закрыть.
ubuntu 12.04 + LibO3.6.0