zaLinux.ru

Регулярные выражения в Writer (LibreOffice): полное руководство


Оглавление

1. Чем отличается поиск по регулярным выражениям от обычного поиска. Зачем использовать регулярные выражения для поиска и замены

2. Особенности поиска по регулярным выражениям Writer (LibreOffice)

3. Как включить поиск по регулярным выражениям в Writer (LibreOffice)

4. Синтаксис регулярных выражений Writer (LibreOffice)

4.1 Буквальное значение символов

4.2 Любой символ

4.3 Диапазоны символов

4.4 Указание количества повторений для одного символа

4.5 Группировка символов

4.6 Указание начала и конца строки

4.7 Любые символы кроме указанных

4.8 Альтернативный выбор

4.9 Поиск по регулярным выражениям с учётом регистра

5. Продвинутый синтаксис регулярных выражений Writer (LibreOffice)

5.1 Обратные ссылки

5.2 Пример использования обратных ссылок в поле «Найти»

5.3 Классы символов POSIX: [:alpha:] [:digit:] и так далее

5.4 Как использовать классы символов POSIX с указанием диапазонов

5.5 Табы, новые строки, абзацы \t \n $

6. Примеры регулярных выражений LibreOffice


7. Как выполнять поиск и замену по нескольким параграфам

8. Отличие регулярных выражений Writer (LibreOffice) от подстановочных знаков MS Word


1. Чем отличается поиск по регулярным выражениям от обычного поиска. Зачем использовать регулярные выражения для поиска и замены

Поиск по регулярным выражениям в первую очередь характеризуется тем, что в качестве строки поиска можно указать не точную строку, а её шаблон. Например, вы можете указать шаблон «четыре цифры подряд» или «три одинаковых буквы подряд» или «цифры в конце слова не отделённые пробелом от букв» и очень многое другое.

Синтаксис регулярных выражений позволяет указать специальные символы, которые могут быть недоступны для обычного поиска, например, мягкий перенос строки, знаки табуляции, начало и конец строки и так далее.

Наконец, поиск по регулярным выражениям позволяет указать дополнительные условия поиска, к примеру:

  • поиск в начале строки
  • поиск в конце строки

Всё это (поиск по шаблону, поиск специальных символов, поиск с дополнительными условиями) может комбинироваться в одном регулярном выражении, благодаря чему достигается одновременно гибкость поиска (мы можем найти строку даже не зная её точное содержимое) и при этом точность поиска (мы можем найти строку, которая следует после слова из шести букв или перед словом в котором не более десяти букв).

Ещё одной функцией регулярных выражений является возможность использовать найденную по шаблону строку при замене. То есть можно не только искать и заменять данные, но и модифицировать их по созданному шаблону.

2. Особенности поиска по регулярным выражениям Writer (LibreOffice)

Если вы уже знакомы с регулярными выражениями (в языках программирования), то в целом регулярные выражения Writer (LibreOffice) очень похожи на все другие реализации.

Но имеется одно важное отличие: поиск по регулярным выражениям Writer (LibreOffice) всегда выполняется внутри одного параграфа. Имеются символы, которые обозначают «начало строки» и «конец строки» которые вы можете использовать в шаблоне, но соответствии шаблону всегда будет проверяться внутри одного параграфа.

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


Тем не менее, это ограничение возможно обойти и ниже будет показано как именно это сделать.

И ещё очень важное отличие по поиску с помощью регулярных выражений в Writer (LibreOffice): по умолчанию поиск выполняется без учёта регистра. Это относится к части шаблона которая трактуется буквально (буквы), так и к диапазонам символов. То есть вы можете указать диапазон «только большие буквы», но если вы не поставите галочку «Учитывать регистр», то маленькие буквы также будут считаться совпадающими с этим диапазоном.

Третье отличие регулярных выражений LibreOffice от многих других языков программирования: после указания диапазонов символов в квадратных скобках необязательно указывать количество повторений. По умолчанию подразумевается один любой символ из диапазона.

3. Как включить поиск по регулярным выражениям в Writer (LibreOffice)

Чтобы выполнить поиск по тексту с использованием регулярных выражений в меню выберите «Правка» → «Найти и заменить…».

Примечание: даже если вы просто хотите выполнить поиск без замены, вам нужно перейти в раздел «Найти и заменить…». Этот раздел позволяет как делать поиск с заменой, так и делать поиск без замены.

Поставьте галочку «Регулярные выражения».

Теперь всё то, что вы введёте в поле «Найти» будет расцениваться как регулярное выражение.

Примечание: всё введённое в поле «Заменить» также будет интерпретироваться как регулярное выражение. Но некоторые символы в полях «Найти» и «Заменить» будут трактоваться по-разному.

4. Синтаксис регулярных выражений Writer (LibreOffice)

4.1 Буквальное значение символов

В регулярных выражениях символы могут трактоваться двумя способами:

  • буквально
  • иметь специальное значение

Буквально трактуются буквы, цифры, пробелы, некоторые знаки препинания (за исключением случаев, когда они используются для указания наборов символов или диапазонов символов). Коротко говоря, буквально трактуются все символы, кроме мета символов.

Специальное значение имеют следующие мета символы:

.
*
+
?
^
$
|
\
[
]
{
}
(
)
- (в случае указания диапазонов)

Если вы хотите, чтобы специальный символ трактовался буквально, например, нужно найти «?» (знак вопроса) в тексте, то для того, чтобы этот символ начал трактоваться буквально поставьте перед ним обратный слэш, например:

\?

Ещё один пример — поиск буквальной «.» (точки):

\.

4.2 Любой символ

. (точка) обозначает «один любой символ»

То есть в регулярном выражении «.» (точка) обозначает любой символ который встречается один раз.

К примеру, следующий шаблон регулярного выражения (используется две точки что означает «два любых символа»):

специальн..

найдёт такие слова как


специальные
специальная
специальную
и т.д.

Рассмотрим ещё несколько примеров. Регулярное выражение для поиска

о.о.о

означает букву «о», за которой идёт любой символ, затем снова идёт буква «о», затем опять любой символ и затем опять буква «о», найдёт следующие слова:

потоков
многополосных
многополосных
которое
правового
такового
такого основания

Можно найти слова с четырьмя буквами «о», в этом поможет шаблон

о.о.о.о

который найдёт следующие слова:

которого
многополосных

Следующий шаблон

а.а.а

найдёт слова с тремя буквами «а»:

наказания
задача
аппарата
высказана
началах

Необязательно использовать одинаковые буквы — составляйте выражения под ваши задачи.

Например, чтобы найти слова, в которых первой встречается буква «з» (неважно в начале слова или в середине), затем идёт любой другой символ, а затем буква «к» и вновь любой символ, можно использовать следующий шаблон для поиска

з.к.

Это регулярное выражение найдёт такие слова как:

закономерности
законодательно

4.3 Диапазоны символов

[…]  означает любое единичное появление любого из символов, заключённых в квадратные скобки.

Например, регулярное выражение

[abc123]

соответствует символам «a», «b», «c», «1», «2» и «3».

Следующее регулярное выражение:

[a-e]

соответствует единичным вхождениям символов от a до e включительно (диапазон должен быть указан первым из символов, имеющих наименьший кодовый номер Unicode).

Следующее регулярное выражение:

[a-eh-x]

соответствует любому отдельному вхождению символов в диапазонах от «a» до «e» и от «h» до «x».

Рассмотрим использование диапазонов символов в регулярных выражениях. Вы можете указать в квадратных скобках набор символов, любой из которых может занимать указанное место.

Например шаблон поиска

к[ао]мпания

найдёт все слова

кампания
компания

Можно указать любое количество в диапазоне символов:

т[впргаое]н

Предыдущий шаблон найдёт такие слова как:

подстановочные
установить
сочетание

Диапазоны символов можно указывать с помощью дефиса, например:

[0-9]

В этом случае будут найдены все символы от 0 до 9.

Можно также указать диапазон букв:

[A-Z]

Но с диапазонами букв нужно быть осторожным, поскольку интуитивные ожидания могут не совсем соответствовать полученным результатам. Прежде всего, помните, что если не включена опция «Учитывать регистр», то диапазоны символов в которых указаны буквы в одном регистре, будут искать буквы в обоих регистрах.

Диапазоны символов не английских букв могут дать не всегда ожидаемые результаты. Это не является багом — это определяется правилами последовательности и сортировки букв для разных локалей. Мы не будем углубляться в эту тему, просто помните про эту особенность диапазонов. Чтобы избежать этой проблемы, можно просто перечислить все символы:

[ABCDEFGHIJKLMNOPQRSTUVWXYZ]
[abcdefghijklmnopqrstuvwxyz]
[АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ]
[абвгдеёжзийклмнопрстуфхцчшщъыьэюя]

Но помните про включённый по умолчанию поиск без учёта регистра. Даже если явно указать только заглавные буквы, например, ABCDEFGHIJKLMNOPQRSTUVWXYZ, по умолчанию будут также найдены буквы в нижнем регистре.

Диапазоны символов можно комбинировать друг с другом:

[A-Za-z0-9]

Примечание: если вы знакомы с диапазонами символов в регулярных выражениях по другим языкам программирования, то вы можете помнить, что в некоторых реализациях поиска по регулярным выражениям (например, в PHP) после диапазона нужно обязательно указать количество повторений символов из этого диапазона. В LibreOffice после диапазона не обязательно указывать количество повторений символа — по умолчанию подразумевается один символ из диапазона. Но вы можете указать количество символов из диапазона — об этом будет говориться ниже.

4.4 Указание количества повторений для одного символа

Диапазон символов означает, что должен встретиться любой символ из этого диапазона, но только один из них и только один раз. Можно указать количество, сколько раз должен встретиться символ. Для указания количества символов используется несколько способов.

1) Диапазон количества символов

Для указания диапазона количества используют фигурные скобки с числами:

{m,n}

Данный синтаксис означает, что предыдущий символ должен встретиться от m до n раз.

Например, следующее правило означает, что буква «о» должна идти от 3 до 5 раз подряд:

o{3,5}

Пример использования внутри регулярного выражения:

преo{3,5}ть

Это регулярное выражение будет искать строку в которой:

  • первая часть представляет собой буквальную строку «преo»
  • затем следует буква «о» от 3 до 5 раз
  • затем следует буквальная строка «ть»

Также допустимы следующие варианты синтаксиса:

{n}

означает, что символ должен повторяться ровно n раз.

{,n}

означает, что символ должен повторяться не более n раз (от нуля до n раз).

{m,}

означает, что символ должен повторяться не менее m раз (от m до бесконечности раз).

Можно сочетать указание наборов символов с указанием диапазонов сколько раз они должны повторяться, например:

т[впргаое]{3,}н

Этот шаблон означает:

  • вначале следует буквальный символ «т»
  • затем следует от 3 до бесконечности любых символов из перечисленных: «впргаое»
  • затем следует буквальная буква «н»

Этому диапазону соответствуют следующие слова:

повторений
торрентах
степени

2) Мета символы указания количества символов

Имеются следующие мета символы указания количества повторений предыдущего символа:

+  (знак плюс) означает количество повторений от 1 и более.

Например "AX.+4" найдёт "AXx4", но не найдёт "AX4".

Обратите внимание, что если в одном абзаце шаблон может совпасть с более длинной строкой и более короткой, то всегда будет выбрана более длинная.

Пример абзаца для поиска:

wwAXx4mmmmmmmmm4

В этом абзаце шаблону "AX.+4" соответствует строка:

AXx4

Также шаблону "AX.+4" соответствует строка:

AXx4mmmmmmmmm4

Так вот, в LibreOffice всегда будет выделена более длинная строка, то есть в данном случае это второй вариант.

Примечание: если вы знакомы с такими терминами как «жадные» (greedy) и «ленивые» (lazy) кванторы в регулярных выражениях, то в LibreOffice регулярные выражения (кванторы) являются жадными.

? (знак вопроса) означает ноль или одно повторение символа, который указан перед ним.

Например, "Texts?" соответствует "Text" и "Texts"; а шаблон "x(ab|c)?y" найдёт "xy", "xaby" или "xcy".

* (звёздочка) означает ноль или более символов, которые следуют перед ней.

Например, "Ab*c" совпадёт с "Ac", "Abc", "Abbc", "Abbbc" и так далее.

4.5 Группировка символов

Выше показано как указать количество повторений для одного символа. Но что если нужно указание количества повторений для последовательности (строки) символов?

Для этого используется группировка символов. Символы или строку, для которых вы хотите указать количество повторений, поместите в круглые скобки, например:

(аb){3}

Этот шаблон означает троекратное повторение строки «аb». То есть этому шаблону будет соответствовать следующая строка:

аbаbаb

Также группировку символов можно использовать с уже знакомыми операторами "*", "+" и "?". Например регулярное выражение

a(bc)?d

найдёт следующие строки:

ad
abcd

А регулярное выражение

M(iss){2}ippi

найдёт строку

Mississippi

Примечание 1: если вам нужно найти строку, содержащую круглые скобки, то экранируйте их в шаблоне регулярного выражения:

8-\([0-9]{3}\)-[0-9]{7}

Предыдущее регулярное выражение найдёт номера телефонов, например:

8-(905)-1437628

Примечание 2: группировка символов используется в регулярных выражениях также и для других целей: 1) для указания альтернативы; 2) для обратных ссылок. Эти способы использования группировки символов будут рассмотрены ниже.


4.6 Указание начала и конца строки

^ означает начало абзаца или ячейки.

Специальные объекты, такие как пустые поля или рамки с привязкой к символам, в начале абзаца игнорируются. Пример: «^Питер» соответствует слову «Питер», только если оно является первым словом абзаца.

$ означает конец абзаца или ячейки.

Специальные объекты, такие как пустые поля или рамки с привязкой к символам в конце абзаца, игнорируются. Пример: «Питер$» соответствует только тогда, когда слово «Питер» является последним словом абзаца. Обратите внимание, что после слова «Питер» не может идти точка.

Используемый один символ $ сам по себе соответствует концу абзаца. Таким образом можно искать и заменять разрывы абзацев.

Для поиска пустых абзацев можно использовать следующее регулярное выражение:

^$

4.7 Любые символы кроме указанных

[^…] допускается любое единичное появление символа (включая символы табуляции, пробела и разрыва строки) которого нет в списке перечисленных символов или диапазонов.

Например, шаблон регулярного выражения

[^a-syz]

соответствует всем символам, не входящим в диапазон от «a» до «s», или символам «y» и «z».

Следующее регулярное выражение найдёт отдельные слова, разделённые пробелом:

[^ ]+[ ]

Значение символов следующее:

  • [^ ]+ — означает что угодно кроме пробела, при это должен быть хотя бы один или более символов
  • [ ] — один пробел

4.8 Альтернативный выбор

| (труба) является инфиксным оператором, разделяющим альтернативы. 

Соответствует термину, предшествующему "|" или термину после «|». Например, "this|that" соответствует обоим вхождениям "this" и "that".

Оператор «|» делит регулярное на две части, каждая из которых является альтернативной. Альтернативы можно ограничить скобками. Например, следующее регулярное выражение

What is (this|that) there\?

Будет соответствовать строкам:

What is this there?
What is that there?

Если бы не использовались скобки, например как в следующем регулярном выражении:

What is this|that there\?

То этот шаблон будет соответствовать строкам:

What is this
that there?

В качестве альтернативы может быть отсутствие каких-либо символов, например:

a(|b)c

Приведённое выше регулярное выражение будет соответствовать строкам:

abc
ac

4.9 Поиск по регулярным выражениям с учётом регистра

По умолчанию в Writer (LibreOffice) поиск, в том числе по регулярным выражениям, выполняется без учёта регистра.

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

Чтобы в Writer (LibreOffice) поиск по регулярным выражениям выполнялся с учётом регистра букв, откройте «Правка» → «Найти и заменить» и поставьте галочку «Учитывать регистр».

5. Продвинутый синтаксис регулярных выражений Writer (LibreOffice)

5.1 Обратные ссылки

Обратные ссылки — это часть найденной шаблоном подстроки, которая может использоваться для замены и/или для поиска аналогичных элементов.

Для создания обратной ссылки, поместите часть шаблона в круглые скобки.

Для обращения к обратной ссылке в поле «Поиск» используйте конструкцию вида "\n" (например «\1», «\2», «\3»).

Для обращения к обратной ссылке в поле «Замена» используйте конструкцию вида "$n" (например «$1», «$2», «$3»).

Для обратных ссылок также имеется следующие мета символы:

$0 вставляет весь найденный текст.
&  также вставляет весь найденный текст.

Пример использования обратных ссылок в Writer (LibreOffice)

Рассмотрим пример, в тексте имеется даты вида DD.MM.YYYY и их нужно заменить на даты вида MM/DD/YY. Например, дату «08.06.1983» нужно заменить на «06/08/83».

Это можно сделать с помощью следующего регулярного выражения в поле «Найти»:

([0-9]{2})\.([0-9]{2})\.[0-9]{2}([0-9]{2})

В поле «Заменить» нужно ввести следующее:

$2/$1/$3

Объяснение элементов регулярного выражения:

  • ([0-9]{2}) — означает две любых цифры. Это часть регулярного выражения помещена в круглые скобки, поэтому найденная подстрока будет присвоена первой обратной ссылке.
  • \. — означает буквальный символ точки
  • ([0-9]{2}) — эта часть идентична первой части. Но поскольку круглые скобки используются второй раз, то найденная подстрока будет присвоена второй обратной ссылке.
  • \. — опять означает буквальный символ точки
  • [0-9]{2} — означает две любых цифры, но круглые скобки не используются. То есть эта часть результата поиска не попадёт в обратные ссылки
  • ([0-9]{2}) — эта часть идентична первой и второй части. Но поскольку круглые скобки используются третий раз раз, то найденная подстрока будет присвоена третьей обратной ссылке.

Объяснение элементов поля «Заменить»:

  • $2 — вторая обратная ссылка
  • / — буквальный символ слэша
  • $1 — первая обратная ссылка
  • $3 — третья обратная ссылка

5.2 Пример использования обратных ссылок в поле «Найти»

Следующее регулярное выражение найдёт три любых одинаковых идущих подряд буквы или цифры:

([A-Za-z0-9]{1})\1\1

Объяснение частей регулярного выражения:

  • ([A-Za-z0-9]{1}) — означает любая одна буква или цифра. Круглые скобки означают, что найденная буква или цифра будет помещена в первую обратную ссылку
  • \1 — означает первая обратная ссылка. То есть та же самая буква или цифра, которая найдена первой частью регулярного выражения

5.3 Классы символов POSIX: [:alpha:] [:digit:] и так далее

В регулярных выражениях можно использовать указание класса символов POSIX в форме [:имя_класса:], которые допускают сопоставление с любыми символами этого класса. Например, [:digit:] обозначает любую из цифр 0123456789.

Доступные выражения в скобках POSIX перечислены ниже. Обратите внимание, что точное определение каждого из них зависит от локали — например, на другом языке другие символы могут считаться «алфавитными буквами» в [:alpha:]. Значения, приведённые здесь, в целом применимы к англоязычным регионам (и не учитывают проблемы с Unicode).

[:alpha:] Любой буквенный символ.
[:digit:] Любая цифра.
[:alnum:] Представляет буквенно-цифровой символ ([:alpha:] и [:digit:]).
[:space:] Представляет символ пробела (но не другие символы пробела).
[:print:] Представляет печатный символ.
[:cntrl:] Представляет непечатаемый символ.
[:lower:] Представляет символ нижнего регистра, если в параметрах выбран параметр «Учитывать регистр».
[:upper:] Представляет символ верхнего регистра, если в параметрах выбран параметр «Учитывать регистр».

5.4 Как использовать классы символов POSIX с указанием диапазонов

Поскольку диапазоны и классы символов POSIX используют квадратные скобки, то может возникнуть путаница при желании использовать классы символов POSIX внутри диапазона.

Вы можете поместить класс символов POSIX вместе с квадратными скобками внутрь квадратных скобок, означающих диапазон.

Следующие пример ищет все символы [:upper:] (символы верхнего регистра), а также букву «a».

[[:upper:]a]

5.5 Табы, новые строки, абзацы \t \n $

Пара символов '\t' имеет особое значение – она обозначает символ табуляции.

Например:

\tred

будет соответствовать символу табуляции, за которым следует слово «red».

Пара символов '\n' в Writer в поле «Найти» означает Shift-Enter (мягкий перенос). Это не то же самое, что символ новой строки или конец абзаца. Это сильно отличается от многих других реализаций поиска по регулярным выражениям. Частично это связано с тем, что регулярные выражения в других программах обычно работают с обычным текстом, тогда как регулярные выражения LibreOffice делят текст по знакам абзацев.

Обратите внимание, что в поле «Заменить» символы '\n' означают конец строки (абзаца).

Символ $ сам по себе (когда используется без других символов) означает конец параграфа.

6. Примеры регулярных выражений LibreOffice

Пустой параграф:

^$

  • ^ указывает, что совпадение должно находиться в начале абзаца,
  • $ указывает, что знак абзаца или конец ячейки должен следовать за совпавшей строкой.

Первый символ параграфа:

^.

  • ^ указывает, что совпадение должно находиться в начале абзаца,
  • . указывает любой одиночный символ.

Следующее регулярное выражение соответствует одной букве "e" или "e", за которой следует одна цифра.

e([:digit:])?
  • e указывает символ «e»,
  • [:digit:] указывает любую десятичную цифру,
  • ? указывает ноль или одно вхождение [:digit:].

Следующее регулярное выражение соответствует абзацу или ячейкам, содержащим ровно одну цифру.

^([:digit:])$
  • ^ указывает, что совпадение должно находиться в начале абзаца,
  • [:digit:] указывает любую десятичную цифру,
  • $ указывает, что знак абзаца или конец ячейки должен следовать за совпадающей строкой.

Следующее регулярное выражение соответствует абзацу или ячейке, содержащей только трёхзначные числа:

^[:digit:]{3}$
  • ^ указывает, что совпадение должно находиться в начале абзаца,
  • [:digit:] указывает любую десятичную цифру,
  • {3} указывает, что [:digit:] должно встречаться три раза,
  • $ указывает, что знак абзаца или конец ячейки должен следовать за совпавшей строкой.

Следующее регулярное выражение соответствует словам «constitution» и «construction», но не слову «constitutional».

\bconst(itu|ruc)tion\b
  • \b указывает, что совпадение должно начинаться на границе слова,
  • const определяет символы «const»,
  • ( начало группы символов,
  • itu указывает символы «itu»,
  • | указывает альтернативу,
  • ruc указывает символы «ruc»,
  • ) завершает группу,
  • tion определяет символы «tion»,
  • \b указывает, что совпадение должно заканчиваться на границе слова.

7. Как выполнять поиск и замену по нескольким параграфам

LibreOffice выполняет поиск строго внутри одного отдельных параграфов и это поведение невозможно изменить настройками и опциями.

Тем не менее, можно частично обойти это ограничение.

Алгоритм действий следующий:

  1. Поиск и замена всех разделителей параграфов на уникальный символ или строку. Это приведёт к тому, что текст будет объединён в единый параграф.
  2. Выполнение поиска или замены с помощью регулярного выражения, в котором символ разделения параграфов заменён на уникальный символ или строку выбранную в первом пункте
  3. В случае необходимости, делаем обратное преобразование уникального символа в символ разделения параграфов

Примечание: перед действиями над текстом сохраните оригинал текста или файла на случай если что-то пойдёт не так.

Итак, допустим имеется следующий текст:

Group 1
Emily Johnson
Benjamin Parker

Chloe Williams
Lucas Thompson
Olivia Davis
Ethan Roberts


Group 2
Isabella White
Jacob Wilson
Sophia Mitchell
Alexander Harris


Group 3
Ava Miller
Liam Anderson
Mia Martinez
Noah Clark
Harper Scott

James Rodriguez
Charlotte Young
Logan Wright

Amelia Brown
Mason Green

Задача: три последовательно идущих символа новой строки заменить на горизонтальную черту «———————————».

То есть в тех местах текста где при вводе трижды была нажата клавиша «Enter» нужно вставить указанную горизонтальную черту. В тех же местах, где клавиша «Enter» была нажата один или два раза, ничего делать не нужно.

Рассмотрим пошаговые действия как в LibreOffice выполнять поиск и замену по нескольким абзацам.

1. Откройте «Правка» → «Найти и заменить».

В поле «Найти» введите:

$

В поле «Заменить» введите:

Поставьте галочку «Регулярные выражения» и нажмите кнопку «Заменить все».

Будет получен следующий результат:

2. Откройте «Правка» → «Найти и заменить».

В поле «Найти» введите:

╋ ╋ ╋

В поле «Заменить» введите:

\n---------------------------------\n

Поставьте галочку «Регулярные выражения» и нажмите кнопку «Заменить все».

Будет получен следующий результат:

3. Откройте «Правка» → «Найти и заменить».

В поле «Найти» введите:

В поле «Заменить» введите:

\n

Будет получен следующий результат:

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

8. Отличие регулярных выражений Writer (LibreOffice) от подстановочных знаков MS Word

Если сравнивать поиск по регулярным выражениям в Writer (LibreOffice) и MS Word, то имеется существенная разница, в первую очередь по той причине, что реализация поиска по регулярным выражениям в MS Word (которая называется поиск по Подстановочным знакам) отличается от языков программирования.

Смотрите также: Как использовать подстановочные символы и регулярные выражения при поиске и замене в Word


Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *