В прошлом посте помощью кодов управляющих символов, поиска и замены мы убирали пробелы, интервалы и «серые пробелы» в редакторе Ms Office. Сейчас мы узнаем как найти и заменить текст, пробелы, перевод строки в Ms Office Word, Open Office Writer, Libre Office в сложном варианте, с выделением подстроки произвольной длины и содержащей произвольный текст.

Цель поста — рассказать новичкам о способностях редакторов по форматированию текста с помощью регулярных выражений. Опытные офисные работники знают и не такое. Сегодня попробуем перенести навыки поиска и замены знаков форматирования на Open Office и Libre Office. Вариант действий для Ms Office отличается только кодом символов и это будет оговорено отдельно. 


Итак, попробуем отформатировать некий текст. Все картинки кликабельны!

регулярные выражения Office 1

Сначала определим задачу. Допустим из огромного массива строк нам нужно выделить адреса сайтов. Что мы имеем? Строки разной длины, с доменами с префиксом www и без него, с https и без.

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

регулярные выражения Office 2

Нам повезло и перед каждым адресом уже есть символ табуляции. Это замечательно. С помощью этого символа мы сформируем таблицу.

регулярные выражения Office 3

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

регулярные выражения Office 4

Получилось замечательно. Исходный текст, как видно, мог бы быть легко отформатирован в электронной таблице, что было бы несколько быстрее. 

То, что нам нужно, а именно адреса сайтов, находятся во втором столбце. Удаляем лишние столбцы.

регулярные выражения Office 5

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

регулярные выражения Office 6

Убираем лишний текст оставляя только название сайта.  Нажимаем Ctrl+F (поиск и замена)

Для Open Office (Libre Office) открываем пункт «Детали»  и отмечаем галочкой «Регулярные выражения». Меняем / на конструкцию вида \t . Что такое \t? Это представление знака табуляции.  Там, где в тексте будет /, он заменится на табуляцию.

Как обозначаются символы абзаца, разрыва строки, табуляции в SWriter (OpenOffice)?

  • символ разрыва строки — «\n«, однако при использовании в поле замены это выражение будет обозначать символ абзаца;

  • символ абзаца — «$«;

  • символ табуляции — «\t«.

регулярные выражения Office 7

Для Ms Office в пункт «Заменить на» ставим ^9. 

форматировать текст 2 lassimarket.ru

Преобразовываем наш текст в табличку.

регулярные выражения Office 8

Теперь можем удалить лишние данные.

регулярные выражения Office 9

Убираем в тексте через поиск и замену  www. и https:// В Open Office (Libre Office) в пункте «Заменить на» просто ничего не ставим.

регулярные выражения Office 10

Вот, что у нас получилось из разрозненного списка с кучей лишней информации.


регулярные выражения Office 11

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

В следующем посте обязательно расскажу об автоматизации действий по обработке информации с помощью макросов и напишем несколько строчек кода для полного удобства при форматировании текста. 

Ниже, под спойлером, Список регулярных выражений Open Office (Libre Office) и Ms Office

Скрытый текст

 Список регулярных выражений Open Office (Libre Office)

Символ Результат/Использование
Любой символ Представление данного символа, если не указано иное.
. Представление любого отдельного символа, кроме разрыва строки или конца абзаца. Например, условие поиска «п.ск» возвращает и «пуск», и «писк».
^ Возможность найти термин, только если этот термин находится в начале абзаца. Особые объекты, например пустые поля или привязанные к символу рамки, в начале абзаца игнорируются. Пример: «^Петр».
$ Возможность найти термин, только если этот термин находится в конце абзаца. Особые объекты, например пустые поля или привязанные к символу рамки, в конце абзаца игнорируются. Пример: «Петр$».
* Поиск нулевого или большего числа символов перед «*». Например, при поиске «Аб*в» будут найдены «Ав», «Абв», «Аббв», «Абббв» и т. д.
+ Поиск одного или большего числа символов перед «+». Например, при поиске «AX.+4» будет найдено «AXx4», но не «AX4».

Всегда будет найдена самая длинная возможная строка, соответствующая данному искомому элементу в абзаце. Если в абзаце содержится строка «AX 4 AX4», выделяется весь фрагмент.

 ? c)?y» будут найдены «xy», «xaby» или «xcy».
\ Поиск воспринимает специальные символы после «\» как обычные символы, а не как регулярное выражение (за исключением сочетаний \n, \t, \> и \<). Например, «текст\.» находит «текст.», а не «тексты» или «тексту».
\n Представление разрыва строки, вставленного с помощью комбинации клавиш SHIFT+ВВОД. Чтобы изменить разрыв строки на разрыв абзаца, введите \n в поля Найти и Заменить на и выполните поиск и замену.

\n в текстовом поле Поиск означает разрыв строки, вставленный с помощью комбинации клавиш Shift+Enter.

\n в текстовом поле Заменить означает разрыв абзаца, который можно ввести с помощью клавиши Enter или Return.

\t Представление знака табуляции. Данное выражение также можно использовать в поле Заменить на.
\> Поиск элемента, находящегося в конце слова. Например, при поиске «бор\>» будет найдено «выбор», но не «борьба».
\< Поиск элемента, находящегося в начале слова. Например, при поиске «\<бор» будет найдено «борьба», но не «выбор».
^$ Поиск пустого абзаца.
^. Поиск первого символа абзаца.
& или $0 Добавление строки, найденной с помощью условий поиска в поле Найти, к элементу в поле Заменить на при выполнении замены.

Например, если ввести «авто» в поле Найти и «&трасса» в поле Заменить на, слово «авто» будет заменено словом «автотрасса».

Также можно ввести «&» в поле Заменить на, чтобы изменить Атрибуты или Формат строки, найденной в соответствии с условиями поиска.

[абв123] Представление одного из символов, находящихся в скобках.
[а-д] Соответствует любому из символов между «a» и «e», включая начальный и конечный символы.

Символы упорядочены по кодовым значениям.

[а-де-х] Представление любого символа, находящегося между «а» и «д» или между «е» и «х».
[^а-с] Соответствует любому символу, кроме символов между «a» и «s».
\xXXXX Представление специального символа на основе его четырехзначного шестнадцатеричного кода (XXXX).

Код для специального символа зависит от используемого шрифта. Для просмотра кодов используются команды Вставка — Специальный символ.

  » и после «|». Например, результатом поиска «этот|тот» будет «этот» и «тот».
{2} Определяет допустимое количество вхождений данного символа перед открывающей скобкой. Например, результатом поиска «сине{2}» также будет «синева».
{1,2} Определяет максимальное и минимальное допустимое количество вхождений данного символа перед открывающей скобкой. Например, результатом поиска «сине{1,2}» также будет «синее» и «синева».
{1,} Этот параметр определяет, какое минимальное число раз может встречаться символ перед открывающей скобкой. Например, при поиске «сине{2,}» будет найдено «синее», «синеее» и «синеееее».
( ) В поле Поиск:

Этот параметр определяет символы внутри скобок как ссылку. После этого можно ссылаться на первую ссылку в текущем выражении с помощью «\1», на вторую — с помощью «\2» и т. д.

Например, если текст содержит число 13487889, то при осуществлении поиска с использованием регулярного выражения (8)7\1\1 будет найдено «8788».

Также можно использовать скобки () для группировки элементов, например, при поиске «а(бв)?г» будет найдено «аг» или «абвг».

В поле Заменить на:

Для замены ссылок используется знак «$» (доллар) вместо «\» (обратная косая черта). Обозначение «$0» используется для замены всей найденной строки.

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

Примеры

Для комплексного поиска можно объединить условия поиска.

Поиск трехзначных чисел в абзаце

^[:digit:]{3}$

^ означает поиск совпадения с начала абзаца.

[:digit:] совпадение с любым десятичным знаком.

{3} означает поиск только 3-х цифр.

$ означает окончание поиска совпадения в конце абзаца.

 

 Список регулярных выражений Ms Office

Установите флажок Подстановочные знаки.

Чтобы найти

Введите

Пример

Любой одиночный знак

?

Выражение «к?т» позволяет найти слова «кот» и «кит».

Любую последовательность знаков

*

Выражение «в*д» позволяет найти слова «вход» и «выход».

Начало слова

<

Выражение «<(сол)» позволяет найти слова «солнце» и «солист», но не слово «фасоль».

Конец слова

>

Выражение «(ель)>» позволяет найти слова «ель» и «шрапнель», но не слово «ельник».

Один из указанных знаков

[ ]

Выражение «кр[еа]н» позволяет найти слова «крен» и «кран».

Любой знак из указанного диапазона

[-]

Выражение «[з-ф]абор» позволяет найти слова «забор» и «табор». Диапазон должен быть указан в порядке возрастания знаков.

Любой знак, кроме знаков, которые находятся в диапазоне, указанном в скобках

[!э-я]

Выражение «к[!е-р]а» позволяет найти слова «кода» и «коса», но не слова «кожа» и «кора».

Ровно n раз повторенный предыдущий знак или выражение

{n}

Выражение «рас{2}чет» позволяет найти слово «рассчет», но не слово «расчет».

Не менее n раз повторенный предыдущий знак или выражение

{n,}

Выражение «рас{1,}чет» позволяет найти слова «расчет» и «рассчет».

От n до m раз повторенный предыдущий знак или выражение

{n,m}

Выражение «10{1,3}» позволяет найти числа 10, 100 и 1000.

Один или более раз повторенный предыдущий знак или выражение

@

Выражение «больше@» позволяет найти слов

 

Использование кодов для поиска знаков, форматирования, полей и специальных символов

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

Коды, которые можно указывать в полях «Найти» и «Заменить на»

Чтобы найти

Введите

Знак абзаца (Paragraph mark)

^p (не действует в поле Найти, если выбран параметр Подстановочные знаки) или ^13

Знак табуляции (tab character)

^t или ^9

Знак ASCII

^nnn, где nnn — код знака

Знак ANSI

^0nnn, где 0 — ноль, а nnn — код знака

Длинное тире ( — )

^+

Короткое тире ( – )

^=

Знак крышки

^^

Принудительный разрыв строки (manual line break)

^l или ^11

Разрыв колонки

^n или ^14

Разрыв раздела или страницы

^12 (при замене добавляет разрыв страницы)

Принудительный разрыв страницы

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

Неразрывный пробел (nonbreaking space)

^s

Неразрывный дефис (nonbreaking hyphen)

^~

Мягкий перенос (optional hyphen)

^-

Код, который можно использовать только в поле «Найти» (если флажок «Подстановочные знаки» установлен)

Чтобы найти

Введите

Фотография или рисунок (только в тексте)

^g

Коды, которые можно использовать только в поле «Найти» (если флажок «Подстановочные знаки» снят)

Чтобы найти

Введите

Любой знак

^?

Любая цифра

^#

Любая буква 

^$

Знак Юникода

^Unnnn, где nnnn — код знака

Фотография или рисунок (только в тексте)

[1]

Знак сноски

^f или ^2

Знак концевой сноски 

^e

Поле

^d

Открывающая фигурная скобка (если коды полей отображаются)

^19

Закрывающая фигурная скобка (если коды полей отображаются)

^21

Примечание

^a или ^5

Разрыв раздела

-b

Длинный пробел (Юникод)

^u8195

Короткий пробел (Юникод)

^u8194

Пробел

^w (можно вставить любую комбинацию обычных или неразрывных пробелов и знаков табуляции)

Коды, которые можно использовать только в поле «Заменить на»

Чтобы найти

Введите

Содержимое буфера обмена Microsoft Windows

^c

Содержимое поля Найти

^&


Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (1 оценок, среднее: 5,00 из 5)
Загрузка...




http://lassimarket.ru/wp-content/uploads/2016/02/регулярные-выражения-Office-7.pnghttp://lassimarket.ru/wp-content/uploads/2016/02/регулярные-выражения-Office-7.pngАнтон ТретьякИнтернетВ прошлом посте помощью кодов управляющих символов, поиска и замены мы убирали пробелы, интервалы и 'серые пробелы' в редакторе Ms Office. Сейчас мы узнаем как найти и заменить текст, пробелы, перевод строки в Ms Office Word, Open Office Writer, Libre Office в сложном варианте, с выделением подстроки произвольной длины и содержащей...Полезные советы по Андроиду, программам, приложениям, лайфхаки и сервисы Интернета для повседневной жизни