Skip to content

Instantly share code, notes, and snippets.

@mikhail73
Last active September 24, 2015 10:02
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mikhail73/ce80bbab28ae2bfde7d7 to your computer and use it in GitHub Desktop.
Save mikhail73/ce80bbab28ae2bfde7d7 to your computer and use it in GitHub Desktop.
OpenOffice макрос для конвертации старой русской орфографии в новую
REM ***** BASIC *****
' rev. 31 mikh
' url макроса https://gist.github.com/mikhail73/ce80bbab28ae2bfde7d7
' Тестировался на LibreOffice 4.2 на более ранних версиях могут быть проблемы
' с регулярными выражениями.
'
' Этот макрос изначльно написан для MS Word http://simposium.ru/ru/node/7
' Участниками форума Инфа-Ресурс он был сконверирован для OpenOffice Writer
' http://community.i-rs.ru/index.php?topic=21745.0
'
' Начиная с версии 10 с пометкой mikh идут версии улучшеные мной.
'
' Начиная с версии 14 структура макроса переведена с цикла for на массив array,
' убраны лишние переменные и комментарии.
'
' Начиная с версии 30 в макрос добавлены замены из аналогичного макроса с сайта wikisource.org
' https://ru.wikisource.org/wiki/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_MediaWiki:Gadget-Deyatificator.js
'
' Структура с массивом позволяет легко добовлять и удалять строки поиска и
' замены, но не позволяет комментировать каждую строку
' Тем кто хочет вникнуть в логику операций поиска и замен в макросе нужно
' читать комментарии в версии 12 https://gist.github.com/mikhail73/5300796
'
' Для того чтобы сравнить работу разных версий макроса обработайте один и тот же
' текст разными версиями и сохраните результаты в текстовых файлах,
' например результат1.txt и результат2.txt, после чего эти файлы можно
' сравнивать при помощи программ winmerge или KDiff3.
'
' Синтаксис регулярных выражений LibreOffice можно посмотреть:
' https://wiki.documentfoundation.org/Documentation/How_Tos/Regular_Expressions_in_Writer
' обмокнутое
' Согласные: бвгджзйклмнпрстфхцчшщ
' Гласные: аеёиоуыэюя
Sub FromOldOrtho20
Dim oRD as Object
oRD = thisComponent.createReplaceDescriptor
oRD.SearchRegularExpression = True
oRD.SearchCaseSensitive = True
' Заменяем все отмененные буквы на современные, предварительно обработав несколько слов в которых -е- имеет смысловое значение
' Заменяем латинскую -i- на -и- перед русскими гласными, не портя латинские слова и римские цифры. Частая ошибка ввода или сканирования.
' Удаляем лишние -ъ- и заменяем -ъи- на -ы- (съиск—сыск)
Repl = Array( _
Array("\<(В|в)се(мъ)?\>", "$1сё$2"), _
Array("\<(В|в)се(-|–)", "$1сё"), _
Array("\<(Е|е)я\>", "$1ё"), _
Array("\<(Ч|ч)емъ\>", "$1ём"), _
Array("\<(Н|н)емъ\>", "$1ём"), _
Array("\u0462", "Е"), _
Array("\u0463", "е"), _
Array("\u0406", "И"), _
Array("\u0456", "и"), _
Array("\u0407", "И"), _
Array("\u0457", "и"), _
Array("\u0472", "Ф"), _
Array("\u0473", "ф"), _
Array("\u0474", "И"), _
Array("\u0475", "и"), _
Array("i([аиеояуюэый])", "и$1"), _
Array("I([аиеояуюэыйАИЕОЯУЮЭЫЙ])", "И$1"), _
Array("([ a-zA-Z])\u0456([a-z])", "$1i$2"), _
Array("([ A-Z])\u0406([a-zA-Z])", "$1I$2"), _
Array("(Ъ|ъ)\>", ""), _
Array("ъ([^еёюяи])", "$1"), _
Array("(Дез|Суб|Контр|Транс|Пост|Пан|Супер|Гипер|Сверх|Меж|дез|суб|контр|транс|пост|пан|супер|гипер|сверх|меж)ъи", "$1и"), _
Array("ъи", "ы") _
)
for each x in Repl()
oRD.SearchString = x(0)
oRD.ReplaceString = x(1)
thisComponent.replaceAll(oRD)
next
' Заменяем окончания -аго после шипящих на -его, в остальных случаях на -ого, предварительно заэкранировав слова исключения (в основном фамилии)
' Заменяем -ыя на -ые
Repl = Array( _
Array("\<(Дубяго|Молодяго|Сипяго|Портняго|Бишляго|Работяго|Деревяго|Изъяго|Изьяго|Кяго|Коляго|Ловяго|Летяго|Плетяго|Ошмяго|Семеняго|Рустяго|Серяго|Семяго|Тверяго|Фиряго|Черняго|Шляго)\>", "$1ФамилИсключ_"), _
Array("\<(Бернаго|Ваго|Вельятаго|Водолаго|Ганаго|Елаго|Жаго|Жеваго|Караго|Карчаго|Кернаго|Кораго|Кураго|Ломаго|Меараго|Мишаго|Паго|Паренаго|Партнаго|Портнаго|Сараго|Семаго|Сраго|Фираго|Шаго|Шамбинаго|Шмаго|Шмараго|Шраго|Юраго)\>", "$1ФамилИсключ_"), _
Array("( |\u00A0)(Живаго|Белаго|Бураго|Рыжаго|Смураго|Мертваго|Веселаго)\>", "$1$2ФамилИсключ_"), _
Array("(ш|щ|ч|ж)аго\>", "$1его"), _
Array("(ш|щ)агося\>", "$1егося"), _
Array("аго\>", "ого"), _
Array("яго\>", "его"), _
Array("ФамилИсключ_", ""), _
Array("\<(Б|б)лого\>", "$1лаго"), _
Array("\<Чикого\>", "Чикаго"), _
Array("\<Сантьего\>", "Сантьяго"), _
Array("\<(В|в)ыя\>", "$1ыяисключ_iya"), _
Array("\<Батыя\>", "Батыяисключ_iya"), _
Array("ыя\>", "ые"), _
Array("исключ_iya", ""), _
Array("ияся\>", "иеся") _
)
for each x in Repl()
oRD.SearchString = x(0)
oRD.ReplaceString = x(1)
thisComponent.replaceAll(oRD)
next
' Заменяем у прилагательных окончания -ия на -ие.
' Чтобы не испортить существительные с аналогичными окончаниями делаем это с учетом предыдущих суффиксов, корней и экранированием исключений
Repl = Array( _
Array("(стра|сти|ду)шия\>", "$1шияИсключshiya_"), _
Array("(Т|т)иранн", "$1иран"), _
Array("(ш|щ|к|ше|кар|древл|тугосис|Кар|Древл|Тугосис)ия\>", "$1ие"), _
Array("(н|ж|д|ш|й|в|ь|х|чер|гор|матер|лет|си|ат|игре|ббот|зим)ния\>", "$1ние"), _
Array("Исключshiya_", ""), _
Array("(но|ро|бла|пе|дол|доро|дра|дру|мно|муру|на|стро|упру|убо|Бла|Пе|Дол|Доро|Дра|Дру|Мно|Муру|На|Стро|Упру|Убо)гия\>", "$1гие"), _
Array("\<(отло|поло|разло|ту|Отло|Поло|Разло|Ту)гия\>", "$1гие"), _
Array("(Прили|Брек|Вельви|Гледи|Обы|бра|зву|ли|серде|челове|полу|прили|ре|то|коне|омо|со|язы|брек|вельви|гледи|обы|жел)чия\>", "$1чияСуществитИсключ_"), _
Array("чия\>", "чие"), _
Array("СуществитИсключ_", ""), _
Array("(вер|у|брю|бу|вет|глу|ли|пло|су|ти|Бу|Вет|Глу|Ли|Пло|Ти)хия\>", "$1хие"), _
Array("\<(С|с)тихие\>", "$1тихия"), _
Array("(ко|хо|ез|го|неду|дю|ро|ра|ры|чу|кня|сты|све|уклю|пого|су|Хо|Ез|Го|Неду|Дю|Ра|Ры|Чу|Кня|Све|Уклю|Пого)жия\>", "$1жие"), _
Array("\<(автар|афа|зантедес|перес|лейкопла|мак|ра|рудбе|телито|Автар|Афа|Зантедес|Перес|Лейкопла|Мак|Ра|Рудбе|Телито)кие\>", "$1кия"), _
Array("\<(Каза|Тур|Калмы|Фра|Дак|Да|Слова|Евдо|Каппадо|Каракалпа)кие\>", "$1кия"), _
Array("\<(глокси|цин|эрин|павлов|Глокси|Цин|Эрин|Павлов)ние\>", "$1ния") _
)
for each x in Repl()
oRD.SearchString = x(0)
oRD.ReplaceString = x(1)
thisComponent.replaceAll(oRD)
next
' Заменяем -з- на -с- в приставках перед глухими согласными.
' Делаем это так чтобы обработать слова с двумя и более приставками (происхождение, предрасположенность и т.д.)
Repl = Array( _
Array("\<(Н|н)изх", "$1исх"), _
Array("\<(С|с)?(Н|н)изш(е|ё)(д|л)", "$1$2исш$3$4"), _
Array("\<(Р|р)азки\>", "$1razki_исключ_"), _
Array("(асс|бл|кирг|н|скл|сл|парад|рев|рем|р|пр|ф|фр|Асс|Бл|Кирг|Н|Скл|Сл|Парад|Рев|Рем|Р|Пр|Ф|Фр)из([цчксфш])", "$1_и_з_исключ_$2"), _
Array("(моро|изра|обра|во|Моро|Изра|Обра|Во)з([кцч])", "$1_з_исключ_$2"), _
Array("(бе|в|во|и|ра|ро|чере|Бе|В|Во|И|Ра|Ро|Чере)з([шкпфсхцчщт])", "$1с$2"), _
Array("razki_исключ_", "азки"), _
Array("_и_з_исключ_", "из"), _
Array("_з_исключ_", "з") _
)
for each x in Repl()
oRD.SearchString = x(0)
oRD.ReplaceString = x(1)
thisComponent.replaceAll(oRD)
next
' Слова в которых -і- перешло в -й-
Repl = Array( _
Array("\<(А|а)ллилуи([а-я]{1,2})", "$1ллилуй$2"), _
Array("\<(Р|р)аион", "$1айон"), _
Array("\<(А|а)ргеиск", "$1ргейск"), _
Array("\<Иорк([а-я]{1,2})", "Йорк$1"), _
Array("(М|м)аиор", "$1айор"), _
Array("(М|м)аиолик", "$1айолик"), _
Array("\<(С|с)ениор(а|у|е|ом|ой|ы|ов|ах|ам|ами){0,1}\>", "$1еньор$2"), _
Array("\<иод(а|у|е|ом){0,1}\>", "йод$1"), _
Array("\<Иод(а|у|е|ом){0,1}\>", "Йод$1"), _
Array("\<иот(а|у|е|ой|ы){0,1}\>", "йот$1"), _
Array("\<Иот(а|у|е|ой|ы){0,1}\>", "Йот$1") _
)
for each x in Repl()
oRD.SearchString = x(0)
oRD.ReplaceString = x(1)
thisComponent.replaceAll(oRD)
next
' Слова в которых -ь- перешел в гласную и обратно
Repl = Array( _
Array("(С|с)(ча|тра)стьй", "$1стий"), _
Array("(П|п)редместьй", "$1$редместий"), _
Array("\<(Н|н)едоумень([а-я]{1,2})", "$1едоумени$2"), _
Array("\<(пар|хар)тью\>", "$1тию"), _
Array("\<(М|м)атерьял", "$1атериал"), _
Array("\<(У|у)частию\>", "$1частиюисключ_stiu"), _
Array("\<(У|у)частью\>", "$1частьюисключ_stiu"), _
Array("([а-яА-ЯёЁ])(вла|стра|ма|на|едера|мни|бе|коры|че|ве|пер|хари|акри|гге|кре|твер)стию\>", "$1$2стиюисключ_stiu"), _
Array("астию\>)", "астью"), _
Array("(н|д|т)остию\>", "$1остью"), _
Array("(Б|б)аталион", "$1атальон"), _
Array("\<(В|в)ариир", "$1арьиур"), _
Array("\<(И|и)гумени(ей|я)", "$1гумень$3"), _
Array("(И|и)талиян(ск|ц)", "$1тальян$2"), _
Array("\<(К|к)омпанион", "$1омпаньон"), _
Array("\<(П|п)иес", "$1ьес"), _
Array("(П|п)очталион", "$1очтальон"), _
Array("\<(слабо|легко|лёгко|предме)сти(е|и|ю|я)([а-яё]{1,2})", "$1сть$2$3"), _
Array("\<(сен|жизн|мысл|цел|филигран|геран|бран|гран|кист|любов|кров)ию", "$1ью"), _
Array("\<(С|с)ериозн", "$1ерьёзн"), _
Array("([а-яА-ЯёЁ])стию\>", "$1стью"), _
Array("\<(Не|не)?(с|С)(ча|тра)сти([а-яё]{1,2})\>", "$1$2$3сть$4"), _
Array("([а-яА-ЯёЁ])ньи\>", "$1нии"), _
Array("\<(бара|бегу|боду|боло|болту|бормоту|ботви|брезгу|бреху|брыку|веду|верту|вещу|визгу|вику|воркоту|ворчу|вру|глазу|говору|горбу|до|драчу|дуэ|екте|игру|игуме|капризу|колду|копоту|копу|коре|крику|кропоту|кряхту|лгу|лепету|лету|лизу|лопоту|молчу|моргу|оле|павли|пачку|певу|перху|песту|пету|пира|писку|плясу|ползу|полы|попрыгу|порху|прыгу|реву|резву|сви|свисту|скаку|сопу|споры|стрекоту|таску|форсу|фырку|хавро|хапу|хвасту|хитру|хлопоту|хохоту|храпу|хрипу|шалу|шату|шепту|шипу|шу|щебету)нии\>", "$1$2ньи"), _
Array("\<(б|ге|г|филиг|Б|Ге|Г|Филиг)ранию\>", "$1ранью"), _
Array("исключ_stiu", "") _
)
for each x in Repl()
oRD.SearchString = x(0)
oRD.ReplaceString = x(1)
thisComponent.replaceAll(oRD)
next
' Устаревшие местоимения и числительные
Repl = Array( _
Array("\<(Е|е)я\>", "$1ё"), _
Array("\<(Н|н)ея\>", "$1её"), _
Array("\<(О|о)не\>", "$1ни"), _
Array("\<(О|о)дне\>", "$1дни"), _
Array("\<(О|о)днех\>", "$1дних"), _
Array("\<(О|о)днем\>", "$1дним"), _
Array("\<(О|о)днеми\>", "$1дними") _
)
for each x in Repl()
oRD.SearchString = x(0)
oRD.ReplaceString = x(1)
thisComponent.replaceAll(oRD)
next
' Обрабатываем слова в которых изменилось написание дефиса
Repl = Array( _
Array("\<(В|в)иц(-|–)мундир\>", "$1ицмундир"), _
Array("\<(В|в)(-|–)пол(-|–)", "$1пол"), _
Array("\<(В|в)(-|–)пол([а-я])", "$1пол$3"), _
Array("\<(П|п)осле(-|–|\s)завтра\>", "$1ослезавтра"), _
Array("\<(В|в)о(\u0301)?(-|–)(век|время|все|всю|едино|истину|круг|обще|очию|свояси|след)\>", "$1о$4"), _
Array("\<(В|в)ысоко(-|–)([а-я]+)(ый|ая|ые|ой|ий|ие|го|ых|ым|их|му)\>", "$1ысоко$3$4"), _
Array("\<(До|до)(-|–)(бела|сыта|красна|черна|темна|светла|веку|верху|гола|днесь|кучно|нага|нельзя|низу|ныне|подлинно|поздна|полна|пряма|пьяна|селе|сель|синя|суха|тла|чиста)\>", "$1$3"), _
Array("\<(И|и)з(-|–)(подлобья)\>", "$1с$3"), _
Array("\<(К|к)(-|–)ряду\>", "$1ряду"), _
Array("\<(Н|н)а(-|–)(встречу|голо|готове|зубок|лицо|обум|отрез|перевес|перерез|распев|смерть|стороже)\>", "$1а$3"), _
Array("\<Нижн([а-я]+)(-|–)Новгород", "Нижн$1 Новгород"), _
Array("\<(Н|н)е(-|–)(впопад|вовремя)\>", "$1$3"), _
Array("\<(О|о)(\u0301)?(-|–)земь", "$1земь"), _
Array("\<(П|п)о(-|–)(долгу)\>", "$1о$3"), _
Array("\<(П|п)од(-|–)ряд\>", "$1одряд"), _
Array("ак(-|–)вояж", "аквояж"), _
Array("\<(С|с)(-|–)(просонья)\>", "$1$3"), _
Array("\<(Со|со)(-|–)(слепу)\>", "$1$3"), _
Array("\<(П|п)олу(-|–)", "$1олу"), _
Array("\<(К|к)онтр(-|–)", "$1онтр"), _
Array("\<(К|к)онтрадмирал", "$1онтр–адмирал"), _
Array("\<(Т|т)яжело(-|–)([а-яё])", "$1яжело$3"), _
Array("\<(Ч|ч)ере(з|с)(-|–)?чур\>", "$1ересчур"), _
Array("(дцати|сорока|десяти|сто)(-|–|—)(одна|двух|трех|четырех|пяти|шести|семи|восьми|девяти)([а-я])", "$1$3$4"), _
Array("\<([А-Я]?)([а-я]+)(-|–)на(-|–)([а-я])\2\>", "$1$2–на$5$2"), _
Array("\<(К|к)ак(-|–|\s)ни(-|–|\s)как\>", "$1ак–никак"), _
Array("\<(К|к)акой(-|–|\s)ни(-|–|\s)какой\>", "$1акой–никакой"), _
Array("\<(К|к)огда(-|–|\s)ни(-|–|\s)когда\>", "$1огда–никогда"), _
Array("\<(М|м)ало(-|–|\s)по(-|–|\s)малу\>", "$1ало–помалу"), _
Array("\<(Б|б)ез(-|–)устали\>", "$1ез устали"), _
Array("\<(Б|б)ыть(-|–)может\>", "$1ыть может"), _
Array("\<(К|к)ак(-|–)(раз)", "$1ак $3"), _
Array("\<(К|к)онце(-|–)концов\>", "$1онце концов"), _
Array("\<(Н|н)а(-|–)днях\>", "$1а днях"), _
Array("\<(Т|т)ак(-|–)(как|сказать|называем)", "$1ак $3"), _
Array("\<(Т|т)о(-|–|—)есть\>", "$1о есть"), _
Array("\<(Т|т)\.(-|–|—)е\.", "$1. е."), _
Array("(-|–)б(ы?)\>", " б$2"), _
Array("(-|–)будто\>", " будто"), _
Array("(-|–)быть\>", " быть"), _
Array("(-|–)есть\>", " есть"), _
Array("(-|–)ж(ь?)(е?)\>", " ж$3"), _
Array("(-|–)ли\>", " ли"), _
Array("(-|–)ль\>", " ль"), _
Array("(-|–)что\>", " что"), _
Array("\<бы(-|–)то\>", "бы то"), _
Array("\<(Н|н)а(-|–)днях\>", "$1а днях"), _
Array("\<(Б|б)ыть(-|–)может\>", "$1ыть может"), _
Array("\<(К|к)о(е|й)\s(до|за|от|по)?(к|ч|г)([а-я]{2,})", "$1о$2–$3$4$5"), _
Array("\sнибудь\>", "–нибудь"), _
Array("\<(И|и)з\s?за\>", "$1з-за"), _
Array("\<(И|и)з\s?под\>", "$1з-под"), _
Array("(П|, п)о видимому([.,])", "$1о–видимому$2"), _
Array("\<(П|п)о(видимому|прежнему)\>", "$1о–$2"), _
Array("\<(П|п)о ([а-яё]+)(ц|с)ки\>", "$1о–$2$3ки"), _
Array("\<(П|п)о ([а-яё]+)ьи\>", "$1о–$2$ьи"), _
Array("\<(К|к)ак\s(таки\>|то[^:а-я])", "$1ак-$2"), _
Array("\<(О|о)пять\sтаки\>", "$1пять-таки"), _
Array("\<(П|п)рямо\sтаки\>", "$1рямо-таки"), _
Array("\<(Т|т)ак\s(таки|то)\>", "$1ак-$2"), _
Array("\<(В|в)с(е|ё)\s?таки\>", "$1сё-таки"), _
Array("(светло|темно|тёмно|Светло|Темно|Тёмно)(сер|син|красн|желт|жёлт|зелен|зелён|оранжев|голуб|бордов|розов|коричнев|фиолетов)", "$1ветло–$2") _
)
for each x in Repl()
oRD.SearchString = x(0)
oRD.ReplaceString = x(1)
thisComponent.replaceAll(oRD)
next
' Слова с исчезнувшим и появившемся пробелом
Repl = Array( _
Array("\<(В|в)\s(догонку|дребезги|замен|заперти|прикуску|припрыжку|присядку|полглаза|полголоса|полнеба|полоборота|полпьяна|полсилы|полслуха|полсыта|полуоборот|полуха|полцены|полшага|попыхах|потьмах|разброд|рассыпную|ручную)\>", "$1$2"), _
Array("\<(В|в)\sпереме(ж|ш)ку", "$1переме$2ку"), _
Array("\<(З|з)а\s(панибрата)\>", "$1а$2"), _
Array("\<(Н|н)а\s(легке|перерез|повал|последок|пропалую|взрыд|перебой|смарку|распашку|угад)\>", "$1а$2"), _
Array("\<(Н|н)а\s(равне|ряду)\sс", "$1а$2 с"), _
Array("\<(Н|н)а\sут(е|ё)к", "$1аутёк"), _
Array("\<(Н|н)е\sвзирая\sна", "$1евзирая на"), _
Array("\<(Н|н)е\sв\s?моготу\>", "$1евмоготу"), _
Array("\<(Н|н)е\s(навязчиво|навязчиве|надолго|намного|нарушимо|нарушиме|натурально|натуральне|примирим)", "$1е$2"), _
Array("\<(Н|н)е\s(вдалеке|кстати|задолго)\>", "$1е$2"), _
Array("\<(П|п)о\s(близости|просту|наслышке|скольку)", "$1о$2"), _
Array("\<(П|п)од\sряд", "$1одряд"), _
Array("\<(С|с)\sизмальства", "$1ызмальства"), _
Array("\<(С|с)\sпросонья", "$1просонья"), _
Array("\<(Д|д)о\sныне\>", "$1оныне"), _
Array("\<(В|в)(течение|продолжение|старину)", "$1 $2"), _
Array("\<(Е|е)слиб(ы)?\>", "$1сли б$2"), _
Array("\<(Н|н)ехватило\>", "$1е хватило"), _
Array("\<(Н|н)евполне", "$1е вполне"), _
Array("\<(Н|н)есовсем", "$1е совсем"), _
Array("\<(Н|н)и\sна\sч(е|ё)м\sне([а-я])", "$1и на чём не $3"), _
Array("\<(Н|н)икогда\sне([а-я]+щий)(ся)?\>", "$1икогда не $2$3"), _
Array("\<(Н|н)икуда\sне([а-я])", "$1икуда не $2"), _
Array("\<(О|о)днакож(ь?)(е?)\>", "$1днако ж$3"), _
Array("\<(П|п)оочереди\>", "$1о очереди$3"), _
Array("\<(Ч|ч)тож(е?)", "$1то ж$2"), _
Array("\<(П|п)риэтом\>", "$1ри этом") _
)
for each x in Repl()
oRD.SearchString = x(0)
oRD.ReplaceString = x(1)
thisComponent.replaceAll(oRD)
next
' Слова с изменившимся написанием без общих правил. По алфавиту.
Repl = Array( _
Array("(А|а)ггрес", "$1грес"), _
Array("(А|а)дэква", "$1деква"), _
Array("\<(А|а)куратн", "$1ккуратн"), _
Array("(А|а)ммуниц", "$1муниц"), _
Array("(А|а)некс", "$1ннекс"), _
Array("(А|а)пплоди", "$1плоди"), _
Array("\<(А|а)р(р)?иергард", "$1рьергард"), _
Array("(А|а)(с{1,2})е(с{1,2})ор", "$1сессор"), _
Array("(А|а)ттак", "$1так"), _
Array("(А|а)ппел", "$1пел"), _
Array("Аустерлицом", "Аустерлицем"), _
Array("(Б|б)анкрут", "$1анкрот"), _
Array("(Б|б)аррьер", "$1арьер"), _
Array("\<(Б|б)аттаре", "$1атаре"), _
Array("(Б|б)ифстекс", "$1ифштекс"), _
Array("(Б|б)иллиард", "$1ильярд"), _
Array("(Б|б)оч(е|ё)н(о)?к", "$1очон$3к"), _
Array("(Б|б)рилиант", "$1риллиант"), _
Array("(В|в)злохмо", "$1злохма"), _
Array("\<(В|в)нутренно\>", "$1нутренне"), _
Array("\<(В|в)озж(а|и|е|у|ой|ою|ей|ам|ами|ах)\>", "$1ожж$2"), _
Array("Виргил(и|ь)", "Вергили"), _
Array("(В|в)олкан", "$1улкан"), _
Array("Волховцем", "Волховцом"), _
Array("(В|в)оспомян", "$1оспомин"), _
Array("\<(В|в)ызсказ", "$1ысказ"), _
Array("(В|в)ыработыв", "$1ырабатыв"), _
Array("(Г|г)аллер", "$1алер"), _
Array("(Г|г)альск", "$1алльск"), _
Array("\<(Г|г)алстух", "$1алстук"), _
Array("(Г|г)енералад", "$1енерал–ад"), _
Array("(Г|г)енералот", "$1енерал–от"), _
Array("Гиерогл", "Иерогл"), _
Array("гиерогл", "иерогл"), _
Array("Гипподром", "Ипподром"), _
Array("гипподром", "ипподром"), _
Array("(Г|г)линен", "$1линян"), _
Array("\<(Г|г)нездышк", "$1нёздышк"), _
Array("Горацие\>", "Горации"), _
Array("\<(Г|г)оспож(е|ё)й\>", "$1оспожой"), _
Array("(Г|г)остинни", "$1остини"), _
Array("(Г|г)руп([^п])", "$1рупп$2"), _
Array("(Д|д)и(л)+е(т)+ант", "$1илетант"), _
Array("(Д|д)иферент", "$1ифферент"), _
Array("(Д|д)иэт", "$1иет"), _
Array("\<(Д|д)евченк", "$1евчонк"), _
Array("(Д|д)екольтэ", "$1екольте"), _
Array("(Д|д)жентльмэн", "$1жентльмен"), _
Array("\<(Д|д)осчат", "$1ощат"), _
Array("(Д|д)отрогива([а-я])", "$1отрагива$2"), _
Array("(Д|д)ышет", "$1ышит"), _
Array("Езоп", "Эзоп"), _
Array("\<(Ж|ж)олт", "$1ёлт"), _
Array("\<(Ж|ж)олуд", "$1ёлуд"), _
Array("(З|з)аваленк", "$1авалинк"), _
Array("(З|з)аведыв", "$1аведов"), _
Array("(З|з)агар(е|а)(лся|лась|лось|лись|лся|ться|ется|емся)", "$1агор$2$3"), _
Array("\<(З|з)адхл", "$1атхл"), _
Array("\<(З|з)апрег", "$1апряг"), _
Array("(З|з)аражд", "$1арожд"), _
Array("(З|з)атрогив", "$1атрагив"), _
Array("(З|з)верок", "$1верёк"), _
Array("(З|з)доровьи", "$1доровье"), _
Array("([а-яА-ЯёЁ])йдти", "$1йти"), _
Array("\<(пр)?(И|и)тти\>", "$1$2дти"), _
Array("\<(И|и)конастас", "$1коностас"), _
Array("\<(И|и)мян", "$1мен"), _
Array("(И|и)скуств", "$1скусств"), _
Array("Капитолие\>", "Капитолии$1"), _
Array("(К|к)апишо", "$1апюшо"), _
Array("аррикатур", "арикатур"), _
Array("\<(К|к)арэ\>", "$1аре"), _
Array("(К|к)атарр", "$1атар"), _
Array("\<(К|к)ашнэ\>", "$1ашне"), _
Array("Кишен(е|ё)в", "Кишинёв"), _
Array("\<(К|к)лиэнт", "$1лиент"), _
Array("(К|к)ожанн", "$1ожан"), _
Array("(К|к)онкурр", "$1онкур"), _
Array("(К|к)оммис", "$1омис"), _
Array("(К|к)омпромис([^с])", "$1омпромисс$2"), _
Array("(К|к)онтрбас", "$1онтрабас"), _
Array("(К|к)онфект", "$1онфет"), _
Array("\<(К|к)орридор", "$1оридор"), _
Array("(К|к)ристалльн", "$1ристальн"), _
Array("\<(К|к)умач(е|ё)в", "$1умачов"), _
Array("\<(К|к)упэ\>", "$1упе"), _
Array("\<(К|к)уцой\>", "$1уцей"), _
Array("(Л|л)иттер", "$1итер"), _
Array("(Л|л)ойяльн", "$1ояльн"), _
Array("\<(Л|л)эди\>", "$1еди"), _
Array("(Л|л)аншафт", "$1андшафт"), _
Array("\<(Л|л)иц(е|ё)м\>", "$1ицом"), _
Array("Миссиссипи", "Миссисипи"), _
Array("Монтан(я|ь|ю)", "Монтен$1"), _
Array("\<(М|м)ежь\>", "$1еж"), _
Array("\<(М|м)ущин", "$1ужчин"), _
Array("\<(М|м)ятел", "$1етел"), _
Array("(Н|н)авожден", "$1аважден"), _
Array("(Н|н)аказу(е|ю)", "$1аказыва$2"), _
Array("(Н|н)акуралес)", "$1акуролес"), _
Array("(Н|н)астеж\>", "$1астежь"), _
Array("(Н|н)ебольш(е|ё)(го|й|му)", "$1ебольшо$3"), _
Array("(Н|н)умер(ах|а|ами|е)?\>", "$1омер$2"), _
Array("(Н|н)ыньче", "$1ынче"), _
Array("\<(О|о)б\s([еёюя])", "$1 $2"), _
Array("(О|о)благорож", "$1благораж"), _
Array("(О|о)бращик", "$1бразчик"), _
Array("(О|о)днакоже", "$1днако же"), _
Array("(О|о)тверзт", "$1тверст"), _
Array("(О|о)перет(а|ы|е|у|ой|ою|ам|ами|ах)?\>", "$1перетт$2"), _
Array("(О|о)ффициа", "$1фициа"), _
Array("\<(П|п)аннихид", "$1анихид"), _
Array("(П|п)анегер", "$1панегир"), _
Array("\<(П|п)анцыр", "$1анцир"), _
Array("(П|п)арале", "$1аралле"), _
Array("Парнасс", "Парнас"), _
Array("(П|п)арч(е|ё)в", "$1арчов"), _
Array("\<(П|п)енснэ\>", "$1енсне"), _
Array("(из|пере|Из|Пере)вощик", "$1возчик"), _
Array("\<(П|п)искар", "$1ескар"), _
Array("\<(П|п)ловуч", "$1лавуч"), _
Array("\<(П|п)лэд(а|у|е|ами|ом|ы)?\>", "$1лед$2"), _
Array("\<(П|п)одъяч", "$1одьяч"), _
Array("покоива([а-я])", "покаива$1"), _
Array("\<(П|п)окоющи", "$1окоящи"), _
Array("(П|п)опер(е|ё)г", "$1опер$2к"), _
Array("(П|п)оровнял([а-я])", "$1оравнял$2"), _
Array("(П|п)ортмонэ", "$1ортмоне"), _
Array("(П|п)остеле\>", "$1остели"), _
Array("(П|п)отрогива([а-я])", "$1отрагива$2"), _
Array("(П|п)раотцов", "$1раотцев"), _
Array("\<(Пра|пра)?(О|о)тцем\>", "$1$2тцом"), _
Array("(П|п)рограм([^м])", "$1рограмм$2"), _
Array("\<(П|п)ривиллег", "$1ривилег"), _
Array("(П|п)ридвид", "$1редвид"), _
Array("(П|п)рийд(ё|е)", "$1рид$2"), _
Array("(П|п)рикащик", "$1риказчик"), _
Array("(П|п)риобревш", "$1риобретш"), _
Array("(П|п)ристрастьи", "$1ристрастье"), _
Array("\<(П|п)репорц", "$1ропорц"), _
Array("\<(П|п)роповедыв", "$1роповедов"), _
Array("(П|п)ротиву", "$1ротиво"), _
Array("(П|п)роэкт", "$1роект"), _
Array("\<(П|п)роэкци", "$1роекци"), _
Array("\<(П|п)салтир", "$1салтыр"), _
Array("(П|п)унсов", "$1унцов"), _
Array("(Р|р)аздумьи", "$1аздумье"), _
Array("(Р|р)азнощик", "$1азносчик"), _
Array("(Р|р)азработыв", "$1азрабатыв"), _
Array("(Р|р)асскащик", "$1ассказчик"), _
Array("(Р|р)асчит", "$1ассчит"), _
Array("\<(Р|р)ассч(е|ё)т", "$1асчёт"), _
Array("\<(Р|р)ессурс", "$1есурс"), _
Array("\<(Р|р)етори", "$1итори"), _
Array("\<(Р|р)ешотк", "$1ешётк"), _
Array("(Р|р)озня", "$1азня"), _
Array("(Р|р)озыгрыва", "$1азыгрыва"), _
Array("\<(Р|р)ост(ёшь|ешь|ём|ем|ёте|ете|и|ёт|ет|ут)\>", "$1аст$2"), _
Array("ростущ", "растущ"), _
Array("\<(С|с)еребрянн", "$1еребрян"), _
Array("(С|с)колопандр", "$1колопендр"), _
Array("\<Снурок", "Шнурок"), _
Array("\<снурок", "шнурок"), _
Array("\<Снурк([а-я])", "Шнурк$1"), _
Array("\<снурк([а-я])", "шнурк$1"), _
Array("\<(С|с)обственоручн", "$1обственноручн"), _
Array("(С|с)овершон", "$1овершён"), _
Array("(С|с)оветыв", "$1оветов"), _
Array("(С|с)остарел", "$1остарил"), _
Array("(С|с)остаревш", "$1остаривш"), _
Array("\<(С|с)тклянк", "$1клянк"), _
Array("\<стор(а|у|е|ой|ами|ы)?\>", "штор$1"), _
Array("\<Стор(а|у|е|ой|ами|ы)?\>", "Штор$1"), _
Array("(У|у)?(С|с)умн", "$1$2омн"), _
Array("(С|с)частьи", "$1частье"), _
Array("\<(Т|т)аллер", "$1алер"), _
Array("(Т|т)еоритич", "$1еоретич"), _
Array("(Т|т)р(е|ё)хугольн", "$1реугольн"), _
Array("\<(Т|т|прот|Прот)анцов([^щ])", "$1анцев$2"), _
Array("\<(Т|т)урнэ", "$1урне"), _
Array("\<(Т|т)фу\>", "$1ьфу"), _
Array("\<(У|у)жь\>", "$1ж"), _
Array("\<(У|у) ней\>", "$1 неё"), _
Array("(У|у)достоивающ", "$1достаивающ"), _
Array("\<(У|у)своив([а-яА-ЯёЁ]|$)", "$1сваив$2"), _
Array("\<(У|у)становли", "$1станавли"), _
Array("цалов([а-я]{3,})", "целов$1"), _
Array("\<(Ц|ц)ипл(ё|е)н", "$1ыпл$2н"), _
Array("\<(Ц|ц)ипочк", "$1ыпочк"), _
Array("(Ц|ц)ырюльн", "$1ирюльн"), _
Array("\<(Ч|ч)ерезмерн", "$1резмерн"), _
Array("\<(Ч|ч)етыреугольн", "$1етырёхугольн"), _
Array("(Четыр|четыр|Тр|тр)ех-стопн([а-яА-ЯёЁ]|$)", "$1ёхстопн$2"), _
Array("\<(Ч|ч)орн", "$1ёрн"), _
Array("\<(Ч|ч)орт", "$1ёрт"), _
Array("(Ш|ш)кап", "$1каф"), _
Array("\<(Ш|ш)опот", "$1ёпот"), _
Array("\<(Ш|ш)олк", "$1ёлк"), _
Array("\<(Ш|ш)офф(е|ё)р", "$1офёр"), _
Array("(Э|э)ксплоат", "$1ксплуат"), _
Array("(Э|э)кспромпт", "$1кспромт"), _
Array("(Э|э)лексир", "$1ликсир"), _
Array("(Э|э)мисар", "$1миссар"), _
Array("(В|в)зрощ", "$1зращ"), _
Array("(В|в)ырост", "$1ыраст"), _
Array("(В|в)озрасл", "$1озросл"), _
Array("(В|в)озрост", "$1озраст"), _
Array("(Р|р)азрост", "$1азраст"), _
Array("одроста", "одраста"), _
Array("(И|и)тти", "$1дти"), _
Array("\<(Во|во|Подо|подо|До|до|За|за|На|на|Ото|ото|Пере|пере|По|по|При|при|Про|про|Произо|произо|У|у)?(Ш|ш)ол(ся)?\>", "$1$2ёл$3"), _
Array("\<(вра|клю|Клю|Вра)ч(е|ё)м", "$1чом"), _
Array("\<(дья|зна|крю|мужи|свер|стари|тол|Дья|Зна|Крю|Мужи|Свер|Стари|Тол)ч(е|ё)к", "$1чок") _
)
for each x in Repl()
oRD.SearchString = x(0)
oRD.ReplaceString = x(1)
thisComponent.replaceAll(oRD)
next
' Все замены для слов набранных в верхнем регистре.
Repl = Array( _
Array("\<ВСЕ(МЪ)?\>", "ВСЁ$1"), _
Array("\<ВСЕ(-|–)", "ВСЁ"), _
Array("\<ЕЯ\>", "ЕЁ"), _
Array("\<ЧЕМЪ\>", "ЧЁМ"), _
Array("\<НЕМЪ\>", "НЁМ"), _
Array("Ъ([^ЕЁЮЯИ])", "$1"), _
Array("(ДЕЗ|СУБ|КОНТР|ТРАНС|ПОСТ|ПАН|СУПЕР|ГИПЕР|СВЕРХ|МЕЖ)ЪИ", "$1И"), _
Array("ЪИ", "Ы"), _
Array("(Ш|Щ|Ч|Ж)АГО\>", "$1ЕГО"), _
Array("(Ш|Щ)АГОСЯ\>", "$1ЕГОСЯ"), _
Array("([А-Я])АГО\>", "$1ОГО"), _
Array("([А-Я])ЯГО\>", "$1ЕГО"), _
Array("\<БЛОГО\>", "БЛАГО"), _
Array("\<ЧИКОГО\>", "ЧИКАГО"), _
Array("\<САНТЬЕГО\>", "САНТЬЯГО"), _
Array("(СТРА|СТИ|ДУ)ШИЯ\>", "$1ШИЯИсключshiya_"), _
Array("ТИРАНН", "ТИРАН"), _
Array("(Ш|Щ|К|ШЕ|КАР|ДРЕВЛ|ТУГОСИС)ИЯ\>", "$1ИЕ"), _
Array("(Н|Ж|Д|Ш|Й|В|Ь|Х)НИЯ\>", "$1НИЕ"), _
Array("(Н|Ж|Д|Ш|Й|В|Ь|Х)НИЯ\>", "$1НИЕ"), _
Array("(НО|РО|БЛА|ПЕ|ДОЛ|ДОРО|ДРА|ДРУ|МНО|МУРУ|НА|СТРО|УПРУ|УБО)ГИЯ\>", "$1ГИЕ"), _
Array("\<(ОТЛО|ПОЛО|РАЗЛО|ТУ)ГИЯ\>", "1$ГИЕ"), _
Array("(ВЕР|У|БРЮ|БУ|ВЕТ|ГЛУ|ЛИ|ПЛО|СУ|ТИ)ХИЯ\>", "$1ХИЕ"), _
Array("\<(СТИХИЕ\>", "СТИХИЯ"), _
Array("(КО|ХО|ЕЗ|ГО|НЕДУ|ДЮ|РО|РА|РЫ|ЧУ|КНЯ|СТЫ|СВЕ|УКЛЮ|ПОГО|СУ)ЖИЯ\>", "$1ЖИЕ"), _
Array("ЫЯ\>", "ЫЕ"), _
Array("ИЯСЯ\>", "ИЕСЯ"), _
Array("(АСС|БЛ|КИРГ|Н|СКЛ|СЛ|ПАРАД|РЕВ|РЕМ|Р|ПР|Ф|ФР)ИЗ([ЦЧКСФШ])", "$1_И_З_исключ_$2"), _
Array("(МОРО|ИЗРА|ОБРА|РА|ВО)З([КЦЧ])", "$1_З_исключ_$2"), _
Array("(БЕ|В|ВО|И|РА|РО|ЧЕРЕ)З([ШКПФСХЦЧЩТ])", "$1$2С$3"), _
Array("_И_З_исключ_", "ИЗ"), _
Array("_З_исключ_", "З"), _
Array("\<КОЕ ([А-Я])", "КОЕ–$1"), _
Array("\<КОЙ К", "КОЙ–К"), _
Array("\<ПО ([А-Я]+)(Ц|С)КИ\>", "ПО–$1$2КИ"), _
Array("АТТАК", "АТАК"), _
Array("\<МАИОР", "МАЙОР"), _
Array("МАИОЛИК", "МАЙОЛИК"), _
Array("\<СЕНИОР(А|У|Е|ОМ|ОЙ|Ы|ОВ|АХ|АМ|АМИ){0,1}\>", "СЕНЬОР$1"), _
Array("\<ИОД(А|У|Е|ОМ){0,1}\>", "ЙОД$1"), _
Array("\<ИОТ(А|У|Е|ОЙ|Ы){0,1}\>", "ЙОТ$1"), _
Array("\<ЕЯ\>", "ЕЁ"), _
Array("\<НЕЯ\>", "НЕЁ"), _
Array("\<ОНЕ\>", "ОНИ"), _
Array("\<ОДНЕ\>", "ОДНИ"), _
Array("\<ОДНЕХ\>", "ОДНИХ"), _
Array("\<ОДНЕМ\>", "ОДНИМ"), _
Array("\<ОДНЕМИ\>", "ОДНИМИ"), _
Array("\<НА(-|–)ДНЯХ\>", "НА ДНЯХ"), _
Array("\<БЫТЬ(-|–)МОЖЕТ\>", "БЫТЬ МОЖЕТ"), _
Array("\<ДО НЫНЕ\>", "ДОНЫНЕ"), _
Array("\<В РУЧНУЮ\>", "ВРУЧНУЮ"), _
Array("\<ПО НАСЛЫШКЕ\>", "ПОНАСЛЫШКЕ"), _
Array("\<ПОПРЕЖНЕМУ\>", "ПО–ПРЕЖНЕМУ"), _
Array("\<НЕХВАТИЛО\>", "НЕ ХВАТИЛО"), _
Array("\<ПОВИДИМОМУ\>", "ПО–ВИДИМОМУ"), _
Array(", ПО ВИДИМОМУ[,.]", ", ПО–ВИДИМОМУ$1"), _
Array("\<ПРИЭТОМ\>", "ПРИ ЭТОМ"), _
Array("\<Т\.(-|–|—)Е\.", "Т. Е."), _
Array("\<(АВТАР|АФА|ЗАНТЕДЕС|ПЕРЕС|ЛЕЙКОПЛА|МАК|РА|РУДБЕ|ТЕЛИТО)КИЕ\>", "$1КИЯ"), _
Array("\<(КАЗА|ТУР|КАЛМЫ|ФРА|ДАК|ДА|СЛОВА|ЕВДО|КАППАДО|КАРАКАЛПА)КИЕ\>", "$1КИЯ"), _
Array("\<(ГЛОКСИ|ЦИН|ЭРИН|ПАВЛОВ)НИЕ\>", "$1НИЯ"), _
)
for each x in Repl()
oRD.SearchString = x(0)
oRD.ReplaceString = x(1)
thisComponent.replaceAll(oRD)
next
MsgBox("Выполнение закончилось",64)
End Sub
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment