Last active
September 24, 2015 10:02
-
-
Save mikhail73/ce80bbab28ae2bfde7d7 to your computer and use it in GitHub Desktop.
OpenOffice макрос для конвертации старой русской орфографии в новую
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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