Лінгвістичні студії: Збірник наукових праць.

Ілля Данилюк — ЛІНГВІСТИЧНЕ ЗАБЕЗПЕЧЕННЯ КОМП’ЮТЕРНИХ СИСТЕМ: РЕГУЛЯРНІ ВИРАЗИ В MS WORD 2010

У статті розглядаються прикладні аспекти використання регулярних виразів у поширеному
текстовому редакторі компанії Microsoft. Наведено галузі застосування РВ у прикладній лінгвістиці, окреслено
специфіку РВ у MS WORD 2010, наведено приклади автоматизації певних завдань та процедур роботи з
текстом, а також описано можливість проведення окремих лінгвістичних досліджень (насамперед,
квантитативних) філологами без глибокої технічної підготовки.
Ключові слова: регулярні вирази, текстовий процесор, пошук, заміна, спеціальний символ.

Використання спеціальних шаблонів для автоматичного чи автоматизованого опрацювання текстових
даних є невід’ємним інструментом сучасних текстових процесорів та повсякденною практикою фахівців з
розробки прикладного програмного забезпечення, лінгвістів, що опрацьовують мовні дані, численних
користувачів мовнозорієнтованого ПЗ. Регулярні вирази (англ. regular expressions, скорочено Regexp, Regex) –
це формальна мова пошуку й здійснення маніпуляцій з підрядками в тексті, що ґрунтується на використанні
метасимволів (символів-джокерів, англ. wildcard characters) [Фридл 2001: 19]. За іншим визначенням, це форма
стандартного запису текстових даних, що використовується в автоматах зі скінченною кількістю станів
[Jurafsky 2009: 17].
По суті, РВ – це рядок-зразок (англ. pattern, також його називають «шаблоном», «маскою»), який
складається із символів і метасимволів, що й задає правило пошуку.
Джерела регулярних виразів лежать у теорії автоматів і теорії формальних мов. Ці галузі вивчають
обчислювальні моделі (автомати) і способи опису й класифікації формальних мов. У 1940-х рр. Уоррен
Маккалок і Уолтер Піттс описали нервову систему, використовуючи простий автомат як модель нейрона.
Математик Стівен Кліні пізніше описав ці моделі, використовуючи свою систему математичних позначень, яку
назвав «регулярними множинами». Кен Томпсон вмонтував їх у редактор QED, а потім у редактор ed під UNIX.
У складі цих та інших утиліт (редактор sed і фільтр grep), що постачалися у дистрибутивах UNIX, регулярні
вирази зробили прорив в електронній обробці текстів наприкінці XX століття. Багато сучасних мов
програмування мають вбудовану підтримку регулярних виразів: серед них Perl, Java, PHP, Javascript, мови
платформи .NET Framework, Python та ін. [Смит 2006: 12-34].
Регулярні вирази використовуються численними текстовими процесорами, редакторами й утилітами для
пошуку й підстановки тексту.
© Данилюк І.Г., 2010 ЛІНГВІСТИЧНІ СТУДІЇ. Випуск 21

254
Регулярні вирази, якщо доповнити їх програмним кодом, можуть допомогти вирішувати такі завдання
аналізу тексту:
– автоматичний морфологічний аналіз тексту (див. [Марчук 2000: 60-70; Карпіловська 2008: 126-137;
Дарчук 2008: 13-95]);
– лематизація (див. [Марчук 2000: 87-89]);
– лінгвістичне дешифрування (див. [Марчук 2000: 49-55]);
– аналітико-синтетичне опрацювання документів (див. [Партико 2008: 103-122]);
– інформаційний пошук (див. [Волошин 2004: 43-64]);
– завдання обчислювальної лексикографії (див. [Волошин 2004: 331-342; Марчук 2000: 70-87;
Перебийніс 2009: 188-206]);
– лінгвістичні квантитативні дослідження загалом (див. [Баранов 2003: 38-51]);
– завдання синтаксичного аналізу (див. [Марчук 2000: 111-125; Карпіловська 2008: 139-143; Дарчук
2008: 95-145]), що включають побудову й використання систем видобування інформації, які ґрунтуються на
атрибутах (див. [Рассел 2006: 1121]).
Конкретнішими завданнями можна назвати, наприклад:
– сортування слів, знайдених у тексті;
– обчислення частотності використання слів;
– одержання доступу до довільних фрагментів тексту;
– статистичне вимірювання лексичної різноманітності мови;
– автоматична побудова графіка на основі видобутої з тексту інформації;
– знаходження загальних контекстів для різних слів;
– розпізнавання граматики мови програмування;
– організація підсвічування синтаксису мови програмування;
– ведення діалогу ЕОМ з користувачем тощо.
Таким чином, метою статті є описати й розробити рекомендації з правильного використання регулярних
виразів в одному з найпопулярніших текстових редакторів – MS Word 2010. Реалізація мети передбачає
виконання кількох завдань:
1. Описати специфіку роботи й режими РВ у текстовому редакторі MS Word 2010;
2. Класифікувати використовувані символи метамови РВ у MS Word 2010;
3. Продемонструвати приклади ефективного використання РВ у MS Word 2010.
Насамперед наведемо пропоновані текстовим редактором MS Word 2010 загальні алгоритми пошуку та
заміни текстових даних (Таблиця 1).
Таблиця 1. Загальні алгоритми пошуку та заміни MS Word 2010
Алгоритм пошуку Алгоритм заміни
Можна швидко знайти усі входження зазначеного
слова або фрази.
1. На вкладці Основне у групі Редагування
клацніть елемент Знайти – Розширений
пошук
2. У полі Знайти введіть текст, який потрібно
знайти.
3. Виконайте одну з таких дій:
4. Щоб знайти кожне входження слова або
фрази, виберіть команду Знайти далі.
5. Щоб знайти усі входження слова або фрази
одночасно, натисніть кнопку Знайти всі і
виберіть пункт Основний документ.
Щоб перервати процес пошуку, натисніть клавішу
ESC.
Можна автоматично замінити слово або фразу на інше
слово або фразу – наприклад, можна
замінити максимальний на найбільший.
У тексті заміни буде використано такий самий режим
введення великих букв, що й у замінюваному тексті.
Наприклад, якщо знайти слово ВР й замінити його на
Верховна Рада, то отримаємо ВЕРХОВНА РАДА.
1. На вкладці Основне у групі Редагування
клацніть елемент Замінити.
2. Відкрийте вкладку Заміна.
3. У полі Знайти введіть текст, який потрібно
знайти.
4. У полі Замінити на введіть текст для заміни.
5. Виконайте одну з таких дій:
6. Щоб знайти наступне входження тексту,
натисніть кнопку Знайти далі.
7. Щоб замінити наступне входження тексту,
натисніть кнопку Замінити. Після натискання
кнопки Замінити програма перейде до
наступного входження тексту.
8. Щоб замінити всі входження тексту,
натисніть кнопку Замінити все.
Щоб перервати процес заміни, натисніть клавішу ESC.

Повний вигляд вікна пошуку та заміни представлено на малюнку 1 (відкривається після натискання
кнопки Більше).
Розділ IХ. ПРИКЛАДНА ЛІНГВІСТИКА: НАПРЯМИ Й АСПЕКТИ ДОСЛІДЖЕННЯ

255

Малюнок 1. Вигляд вікна пошуку та заміни MS Word 2010

У найпростішому пошуку для української мови можна використовувати такі додаткові опції: пошук та
заміна з урахуванням регістру (великих та малих букв – відповідне поле, де можна поставити прапорець), а
також пошук та заміна введених символів як цілого слова (відповідне поле з прапорцем буде активним, якщо
ввести текст без пробілів).
Не всі елементи тексту, насамперед, невидимі знаки форматування, можуть бути знайдені та опрацьовані
у звичному режимі. Для їх пошуку та заміни використовується схожий алгоритм (Таблиця 2.):

Таблиця 2. Алгоритми пошуку та заміни спеціальних знаків MS Word 2010
Алгоритм пошуку та заміни спеціальних знаків
1. На вкладці Основне у групі Редагування клацніть елемент Знайти.
2. Якщо кнопка Спеціальний не відображається, натисніть
кнопкуДодатково.
3. Натисніть кнопку Спеціальний і виберіть потрібний елемент.
4. Якщо потрібно замінити елемент, відкрийте вкладку Замінити й у
поліЗамінити на введіть замінник.
5. Натисніть кнопку Знайти далі, Знайти все, Замінити або Замінити
все.
Щоб перервати процес пошуку, натисніть клавішу ESC.

У MS Word 2010 існують два типи спеціальних знаків – спеціальні символи й символи підстановки.
Обидва типи зручно вводити в рядки пошуку й заміни, використовуючи кнопку Спеціальний у діалоговому
вікні пошуку й заміни.
Спеціальними символами називають символи, яких немає на клавіатурі й/або які неможливо
безпосередньо вписати в рядок пошуку або заміни. Наприклад: примусовий розрив рядка, м’який перенос,
нерозривний пробіл тощо.
Якщо в діалоговому вікні пошуку й заміни задіяна опція Символи підстановки (англ. Use wildcards,
рос. Подстановочные знаки), то стає можливим формувати складні умови пошуку. З їхньою допомогою можна
задавати діапазони символів і вирази, що відповідають низці умов.
Деякі символи й знаки можна використовувати тільки в рядку пошуку (таблиці групи І), деякі – тільки в
рядку заміни (таблиці групи ІІ). Можливість використання інших залежить від того, чи увімкнена
опція Символи підстановки. Наприклад, якщо ця опція увімкнена, буде знайдено лише точно вказаний у рядку
пошуку текст – з урахуванням великих та малих літер, при цьому прапорці Регістр і Лише цілі слова повністю
будуть недоступні (сірі), на позначення того, що параметри автоматично ввімкнуто.
І.1. Спеціальні символи, які можна використовувати у рядку пошуку тільки в тому випадку, якщо
опція Символи підстановки не увімкнена: ЛІНГВІСТИЧНІ СТУДІЇ. Випуск 21

256
Таблиця 3.
Спец. символи Що позначають
^p або ^13 Символ кінця абзацу (¶)
^? Будь-який символ
^# Будь-яка цифра
^$ Будь-яка буква
^e Кінцева виноска
^d Поле
^f або ^2 Виноска
^19 Відкрита фігурна дужка (якщо відображаються коди
полів)
^21 Відкрита фігурна дужка (якщо відображаються коди
полів)
^b Розрив розділу (секції)
(===End of section===)
^w Будь-яка кількість й будь-які комбінації звичайних та
нерозривних пробілів, табуляцій і кінців абзацу
^u8195 Довгий пробіл (Юнікод)
^u8194 Короткий пробіл (Юнікод)
^Unnnn Символ Юнікоду, де nnnn є кодом символу
І. 2. Спеціальні символи, використання яких у рядку пошуку не залежить від опції Символи
підстановки:
Таблиця 4.
Спец. символи Що позначають
^t або ^9 Символ табуляції ( )
^a або ^5 Коментар (примітка)
^nnn ASCII символ з кодом nnn
^0nnn ANSI символ з кодом nnn
^^ Символ
^g Графіка
^n або ^14 Розрив колонки (стовпчика)
(···Column Break···)
^l або ^11 Примусовий розрив рядка ( )
^m Ручний розрив сторінки (–Page Break–). Якщо опція Символи
підстановки задіяна, то шукає й примусовий розрив сторінки, й розрив
розділу.
^12 Розрив розділу або сторінки (під час заміни вставляє розрив сторінки)
^+ Довге тире (–). Символ з кодом 0151.
^= Коротке тире (–). Символ з кодом 0150.
^s Нерозривний пробіл
^~ Нерозривний дефіс
^- М’який перенос (¬) Розділ IХ. ПРИКЛАДНА ЛІНГВІСТИКА: НАПРЯМИ Й АСПЕКТИ ДОСЛІДЖЕННЯ

257

І.3. Символи підстановки, які можна використовувати у рядку пошуку тільки в тому випадку, якщо
опція Символи підстановки увімкнена.
Таблиця 5.
Спец.
знаки
Що позначають Приклад рядка
пошуку
Що знаходитиме
^13 Символ кінця абзацу (¶) бік^13 бік¶
? Один будь-який символ б?к бак, бік, бук, б5к, б¶к
* Будь-яка кількість будь-яких символів б*к бик, бардак, білий.¶
полковник
[] Один із вказаних символів б[аоу] до бак, бік, бук
[-] Один символ з діапазону.
Діапазон повинен бути вказаний у
порядку зростання кодів символів. На
малюнку 2 представлено частковий
вигляд вікна таблиці символів, у якому
видно, що українські літери і, ї, є, ґ не
входять до основного діапазону
кириличних літер а-я.
[а-яіїєґ] Будь-яка маленька українська буква
[А-ЯІЇЄҐ] Будь-яка велика українська буква
[а-яіїєґА-ЯІЇЄҐ] Будь-яка українська буква (точно)
[А-ґ] Надлишковий спосіб запиту на пошук
будь-якої української літери (у текстах,
де використовуються й інші мови,
знаходитиме, наприклад, э, ѐ тощо)
[0-9] Будь-яка цифра
[!] Один будь-який символ, не зазначений
після знаку оклику
б[!і]к бак, бик тощо, але не бик
[!x-z] Один будь-який символ, що не входить
до діапазону, вказаного після знаку
оклику
[!а-я]ік Бік, Рік тощо, але не бік, рік
[!0-9] Будь-який символ крім цифр
{n} Чітко n повторів попереднього символу
або виразу.
Виразом є все те, що взяте в круглі
дужки. Вираз може складатися як з
конкретних символів, так і містити
спеціальні знаки.
10{3} 1000, але не 100, 10000
10(20){2} 102020, але не 1020, 10202020
{n;}1 n і більше повторів попереднього
символу або виразу
10{3;} 1000, 10000, 100000 тощо, але не 100
{n;m} Від n до m повторів попереднього
символу або виразу
10{3;4} 1000, 10000, але не 100, 100000
@ Нуль або більше повторів
попереднього символу або виразу
10@ 10, 100, 1000, 10000 і т.д.
< Початок слова <горо город, гороскоп, але не загорожа
> Кінець слова ор> трактор, лор, але не ораторія
\ Використовується для пошуку
символів, визначених як символи
підстановки
\? ?

1
Крапка з комою в операторах {n;} і {n;m} — не просто розділовий знак, а так званий List separator (Роздільник елементів списку).
У США це кома, в Україні — крапка з комою. Щоб довідатися, який символ виконує роль роздільника елементів списку у вашій
конфігурації, скористайтеся шляхом: Панель керування | Мова та регіональні стандарти | Розширені параметри | Числа |
Роздільник елементів списку).
ЛІНГВІСТИЧНІ СТУДІЇ. Випуск 21

258

Малюнок 2. Вікно таблиці символів MS Word 2010

ІІ. 1. Спеціальні символи, використання яких у рядку заміни не залежить від опції Символи
підстановки
Таблиця 6.
Спец. символи Що позначають
^p або ^13 Символ кінця абзацу (¶)
^t Символ табуляції ( )
^nnn ASCII символ з кодом nnn
^0nnn ANSI символ з кодом nnn
^c Вміст буфера обміну
^& Вміст рядка пошуку (або те, що знайдене)
^n або ^14 Розрив колонки (стовпчика)
^l або ^11 Примусовий розрив рядка ( )
^m Примусовий розрив сторінки
^+ Довге тире (–). Символ з кодом 0151.
^= Коротке тире (–). Символ з кодом 0150.
^s Нерозривний пробіл
^~ Нерозривний дефіс
^- М’який перенос (¬)

ІІ.2. Символи підстановки, які можна використовувати в рядку заміни тільки в тому випадку, якщо
опція Символи підстановки увімкнена.
Таблиця 7.
Знаки Що позначають
\n Вираз номер n з рядка пошуку
У рядку пошуку виразом є все те, що взяте в круглі дужки (які в цьому випадку виступають
спеціальними знакам). Вираз може складатися як з конкретних символів, так і містити символи підстановки або
спеціальні символи. Порядок проходження виразів визначає їхню нумерацію. Розділ IХ. ПРИКЛАДНА ЛІНГВІСТИКА: НАПРЯМИ Й АСПЕКТИ ДОСЛІДЖЕННЯ

259
У рядку заміни вирази подаються у вигляді: \n, де n – номер виразу в рядку пошуку. Наприклад:
Таблиця 8.
Рядок пошуку Рядок заміни Результат пошуку й заміни
(Іван )(їсть )(грушу). \3 \2\1 грушу їсть Іван.
\1\3 прицмокуючи \2 Іван грушу прицмокуючи їсть.
\1та Оля їдять \3 Іван та Оля їдять грушу.
\1\2\3 та Оля \2\3 Іван їсть грушу та Оля їсть грушу.

Наведемо приклади поширених операцій пошуку та заміни із використанням регулярних виразів (опція
Символи підстановки увімкнена):
Таблиця 9.
Рядок пошуку Рядок заміни Результат пошуку й заміни
([!^0013]^0013)([!^0013]) \1^0013\2 Вставка порожнього рядка між тими
абзацами, між якими порожнього рядка не
було.
(^0013){2;} \1 Видалення порожніх рядків
^0032{2;} ^0009 Заміна двох або більше пробілів на табуляцію
^0032([.,:;\!\?]) \1 Видалення пробілу перед розділовим знаком
( . , : ; ! ? )
([0-9])^0032([0-9]) \1^s\2 Заміна звичайного пробілу між цифрами на
нерозривний пробіл
([А-ЯІЄҐ].)^0032([А-ЯІЄҐ]) \1^s\2 Заміна звичайного пробілу між великими
українськими літерами, після першої з яких
іде крапка, на нерозривний пробіл
(виправлення ситуації, коли ініціали з
прізвищем – А. В. Голова – розриває на два
рядки)
-([0-9]) ^0150\1 Заміна дефіса перед цифрою на мінус
\(([0-9])\) [\1] Заміна круглих дужок навколо цифри на
квадратні
(<[0-9]@).([0-9]@>) \1,\2 Десяткова крапка буде замінена
на кому
<[А-ЯІЄЇҐа-яієїґ]@> ^& Кількість замін свідчитиме, скільки
українських слів є у тексті
<[A-z]@> ^& Кількість замін свідчитиме, скільки слів у
тексті набрані латиницею
([!,])( зокрема)([!,]) \1, \2, \3 Виділяє комами, де потрібно, слово зокрема
Дмитр([а-яі]@>) Петр\1 Заміна імені Дмитро на ім‘я Петро відразу в
усіх відмінках

Отже, використання РВ при роботі з текстовими процесорами, зокрема, MS Word 2010, дозволяє
автоматизувати чималу кількість завдань та процедур роботи з текстом професійного копірайтера, перекладача
тощо, а також уможливити проведення окремих лінгвістичних досліджень (насамперед, квантитативних)
філологами без глибокої технічної підготовки. Перспективним видається створення базового набору РВ для
MS Word 2010 з використанням макросів.

Література
1. Баранов 2003: Баранов, А. Н. Введение в прикладную лингвистику [Текст] / А. Н. Баранов. – М. :
Едиториал УРСС, 2003. – 360 с.
2. Волошин 2004: Волошин, В. Г. Комп‘ютерна лінгвістика : Навчальний посібник [Текст] / В. Г.
Волошин. – Суми : ВТД «Університетська книга», 2004. – 382 с.
3. Дарчук 2008: Дарчук, Н.П. Комп‘ютерна лінвістика: Автоматичне опрацювання тексту [Текст] / Н.П.
Дарчук. – К. : Видавничо-поліграфічний центр «Київський університет», 2008. – 351 с.
4. Карпіловська 2008: Карпіловська, Є. А. Вступ до прикладної лінгвістики : комп‘ютерна лінгвістика.
Підручник [Текст] / Є. А. Карпіловська. – Донецьк : ТОВ «Юго-Восток, Лтд», 2006. – 188 с. ЛІНГВІСТИЧНІ СТУДІЇ. Випуск 21

260
5. Марчук 2000: Марчук, Ю. Н. Основы компьютерной лингвистики [Текст] / Ю. Н. Марчук. – М. :
Народный учитель, 2000. – 320 с.
6. Партико 2008: Партико, З.В. Прикладна і комп’ютерна лінгвістика: Вступ до спеціальності [Текст] /
З.В. Партико. – Львів: Афіша, 2008. – 224 с.
7. Перебийніс 2009: Перебийніс В.І., Сорокін В.М. Традиційна та комп‘ютерна лексикографія :
Навчальний посібник [Текст] / В.І.Перебийніс. – К.: Вид. центр КНЛУ, 2009. – 218 с.
8. Рассел 2006: Рассел, С., Норвиг, П. Искусственный интеллект: современный подход [Текст] / Пер. с
англ. – М. : Издательский дом «Вильямс», 2006. – 1408 с.
9. Смит 2006: Смит, Б. Методы и алгоритмы вычислений на строках (regexp) = Computing Patterns in
Strings [Текст] / Пер. с англ. – М. : Издательский дом «Вильямс», 2006. – 496 с.
10. Фридл 2001: Фридл, Дж. Регулярные выражения [Текст] / Дж. Фридл. – СПб : Питер, 2001. – 352 с.
11. Jurafsky 2009: Jurafsky, D., Martin, J. H. Speech and Language Processing: An Introduction to Natural
Language Processing, Computational Linguistics, and Speech Recognition [Текст]. – Prentice Hall, 2009. –
988 p.

В статье рассматриваются прикладные аспекты использования регулярных выражений в
распространенном текстовом редакторе компании Microsoft. Приведены области применения РВ в
прикладной лингвистике, очерчена специфика РВ в MS WORD 2010, приведены примеры автоматизации
определенных задач и процедур работы с текстом, а также описана возможность проведения отдельных
лингвистических исследований (прежде всего, квантитативных) филологами без глубокой технической
подготовки.
Ключевые слова: регулярные выражения, текстовый процессор, поиск, замена, специальный символ
The article discusses practical aspects of use of regular expressions in the text editor from Microsoft. An
application field of RE in applied linguistics are mentioned, RE specifics is outlined in MS WORD 2010, some examples
of automating certain tasks and procedures of the text proceeding are given and the possibility of some linguistic
studies (primarily quantitative) for philologists without deep technical training is described.
Keywords: regular expressions, word processor, search, replace, special characters
Надійшла до редакції 23 січня 2010 року.

Категорія: Лінгвістичні студії: Збірник наукових праць.

Літературне місто - Онлайн-бібліотека української літератури. Освітній онлайн-ресурс.