Замена списка слов

148 views
Skip to first unread message

Алексей Выскуб

unread,
May 22, 2019, 2:14:59 AM5/22/19
to Fiction Book Editor
Здравствуйте!
Можно ли реализовать возможность замены списка слов?

Sclex

unread,
May 24, 2019, 11:34:26 AM5/24/19
to Fiction Book Editor
Разработкой FBE и его скриптов сейчас никто не занимается. Да и стоит ли делать что-то новое, когда уже на подходе FB3?

среда, 22 мая 2019 г., 9:14:59 UTC+3 пользователь Алексей Выскуб написал:

Sclex

unread,
Jun 6, 2020, 8:42:15 AM6/6/20
to Fiction Book Editor
Алексей Выскуб, вы тут еще присутствуете? Что за новый скрипт вы предлагали сделать? Он вам еще нужен? Если да, то, пожалуйста, разъясните поподробней:
- Какую информацию скрипт должен принимать на входе?
- Нужен ли этому скрипту какой-то графический интерфейс? Какой именно?
- Какие действия скрипт должен совершать?

Не гарантирую, что исполню ваше пожелание, но шансы есть.

среда, 22 мая 2019 г., 9:14:59 UTC+3 пользователь Алексей Выскуб написал:
Здравствуйте!

Алексей Выскуб

unread,
Jun 6, 2020, 10:43:28 AM6/6/20
to Fiction Book Editor
Хотелось бы увидеть скрипт для групповой замены слов, чтобы он заменял сразу несколько слов, желательно с учётом регистра, чтобы не вносить их по очереди в "Заменить", т.е. такая продвинутая версия этой функции.
Графический интерфейс нужен, в него будут вносятся пары слов искомое-заменяющее. Также можно добавить загрузку нужных пар слов из файла.
Столкнулся с необходимостью в нём, когда решил заменить в тексте "е" на "ё".

Sclex

unread,
Jun 6, 2020, 11:28:46 AM6/6/20
to Fiction Book Editor
> чтобы он заменял сразу несколько слов, желательно с учётом регистра
Вы имели в виду *поиск* с учетом регистра? Или именно замену? Если замену, то что вы подразумеваете под учетом регистра при произведении замен? Я хочу быть уверен, что я правильно вас понимаю.

> Графический интерфейс нужен, в него будут вносятся пары слов искомое-заменяющее.
Из каких элементов должен состоять диалог данного скрипта? Кнопки, поля ввода... - что там должно быть?

И о каком количестве пар "строка_для_поиска и строка_для_замены" идет речь?

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

суббота, 6 июня 2020 г., 17:43:28 UTC+3 пользователь Алексей Выскуб написал:

Алексей Выскуб

unread,
Jun 6, 2020, 3:51:16 PM6/6/20
to Fiction Book Editor
Именно замена.
Учёт регистра: вводишь, например, пару "еще-ещё", идёт замена "еще" на "ещё" и "Еще" на "Ещё".
Диалог скрипта: поле строки для поиска, поле строки для замены, кнопка добавления новой пары "искомое слово-замена", чек-бокс учёта регистра, кнопка "ОК" и "Отмена".3 пар для начала, думаю, хватит, т.к. можно будет кнопкой добавить необходимое количество пар.
Формат подачи информации в файле: строка для поиска-строка для замены. Новая пара с новой строки.

TaKir

unread,
Jun 6, 2020, 5:37:25 PM6/6/20
to Fiction Book Editor


суббота, 6 июня 2020 г., 22:51:16 UTC+3 пользователь Алексей Выскуб написал:
Оставляя в стороне вопрос нужности ёфикации...

В файле, как по мне, лучше разделять пары слов через табуляцию  и каждая новая пара с новой строки
Формата txt файла должно хватить для указанной цели больше чем.
А конкретно для целей ёфикации, может быть сделать именно скрипт ёфикации, проверяющий и заменяющий все нужные варианты в 1 клик?
Набросать максимально возможный список нужных замен один раз, а скрипт их сразу все и применит?
Чтобы не делать кучу одинаковых действий на каждой книге?

Алексей Выскуб

unread,
Jun 7, 2020, 2:09:16 AM6/7/20
to Fiction Book Editor
Насчёт разделения пар табуляцией и формата txt согласен.
А скрипты, думаю, нужны и ёфикации, и множественной замены.

Vitalii Stopchans'kyi

unread,
Jun 7, 2020, 3:07:44 AM6/7/20
to fiction-b...@googlegroups.com
Если в один клик... В украинском языке также есть необходимость ґ-фикации текстов.
Было бы более чем удобно, чтобы варианты замены были в редактируемом txt.

нд, 7 черв. 2020, 00:37 користувач TaKir <epap...@gmail.com> пише:
--
Вы получили это сообщение, поскольку подписаны на группу "Fiction Book Editor".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес fiction-book-ed...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/67d6f73f-6fa0-48a1-8387-7b8683c1dc70o%40googlegroups.com.

Sclex

unread,
Jun 7, 2020, 3:49:25 AM6/7/20
to Fiction Book Editor
Теперь полностью вас понял, Алексей. Если реализую ваше пожелание, сообщу в данной гугл-группе. Или свяжусь с вами по е-мейлу.

суббота, 6 июня 2020 г., 22:51:16 UTC+3 пользователь Алексей Выскуб написал:

Алексей Выскуб

unread,
Jun 7, 2020, 7:12:47 AM6/7/20
to Fiction Book Editor
Спасибо!
Буду ждать.

Иван

unread,
Sep 7, 2025, 8:21:33 AM9/7/25
to Fiction Book Editor
Нет ли новостей?
Очень нужна такая "автозамена" из списка своих слов. Не про ёфикацию, а просто слово заменить на слово - и так раз 50.

воскресенье, 7 июня 2020 г. в 14:12:47 UTC+3, alexej...@gmail.com:
Спасибо!
Буду ждать.

Sclex

unread,
Sep 7, 2025, 8:35:59 AM9/7/25
to Fiction Book Editor
> Нет ли новостей?
> Очень нужна такая "автозамена" из списка своих слов. Не про ёфикацию, а просто слово заменить на слово - и так раз 50.
С моей стороны - новостей нет.

воскресенье, 7 сентября 2025 г. в 15:21:33 UTC+3, Иван:

Иван

unread,
Sep 7, 2025, 8:54:06 AM9/7/25
to Fiction Book Editor
А можете дать какую-нибудь наводку? На аналог, похожий скрипт? Попробую подредактировать для себя.
Обратил внимание на даты в этой ветке... Так понимаю, что все оказалось сложно...
Нужен хотя бы "полуфабрикат", но который тем не менее главную функцию замены слов из списка делает.
Без изысков вроде отдельного txt и прочего.
Пусть будет просто скрипт.js, внутри файла собственно скрипт, который делает такую автозамену списком слов. И строчка Шаблон №1 - Шаблон №2.
Кому надо, может элементарно открыть файл Блокнотом, затем размножить строчку Шаблон №1 - Шаблон №2, и сам вручную внести туда свои пары слов.
Поискал у себя в папке скриптов хоть что-то похожее, но не смог найти.

воскресенье, 7 сентября 2025 г. в 15:35:59 UTC+3, Sclex:

Sclex

unread,
Sep 7, 2025, 9:09:33 AM9/7/25
to Fiction Book Editor
> А можете дать какую-нибудь наводку? На аналог, похожий скрипт?
Нет, я ничего такого не знаю.

> Обратил внимание на даты в этой ветке... Так понимаю, что все оказалось сложно...
Да не то чтобы сложно. Просто мне в последнее время *вообще* не до программирования. Да и, честно говоря, забыл я, что была просьба сделать такой скрипт.

воскресенье, 7 сентября 2025 г. в 15:54:06 UTC+3, Иван:

stokber

unread,
Sep 7, 2025, 9:26:10 AM9/7/25
to Fiction Book Editor
Попробуйте. Заодно и протестируете. Работает с выделенным текстом.
66_Замена слов по списку из буфера обмена.jsjs
воскресенье, 7 сентября 2025 г. в 16:09:33 UTC+3, Sclex:

stokber

unread,
Sep 7, 2025, 9:37:18 AM9/7/25
to Fiction Book Editor
Скрипт производит замену любых слов в выделенном тексте. Перед запуском скопируйте в буфер обмена список замен. Список представляет собой любое количество строк с парой разделённых пробелом слов — то, которое меняем и то, на которое меняем. Перед, после и между ними (словами) может находиться любое количество пробелов. Пустые строки между таких строк замен игнорируются. В списке не должно быть никаких других символов, кроме пробелов и букв русского и английского алфавитов. В качестве списка замен может выступать любой скопированный текст из любой программы, включая FBE.
Пример строки замен:
ашипка ошибка
апичатка опечатка
малако молоко

воскресенье, 7 сентября 2025 г. в 16:26:10 UTC+3, stokber:

stokber

unread,
Sep 7, 2025, 9:43:21 AM9/7/25
to Fiction Book Editor
Если список замен будет некорректен, есть возможность прочесть содержание предыдущего поста не выходя из скрипта.

воскресенье, 7 сентября 2025 г. в 16:37:18 UTC+3, stokber:

Иван

unread,
Sep 7, 2025, 10:20:22 AM9/7/25
to Fiction Book Editor
Вот что я вам скажу........................
СПАСИБО.
Отлично работает.
Единственно, с регистром нюансик. Я заменил было строчку var re01 = new RegExp("(^|[^a-zA-Z0-9а-яёА-ЯЁ])"+key+"(?=[^a-zA-Z0-9а-яёА-ЯЁ]|$)", "gi"), ну то есть i добавил, скрипт стал переводить верхний в нижний. Так что откатился на оригинал, который не видит не свой регистр. В общем, совершенно не проблема сделать оба варианта, т.е. нижний И верхний, ведь свой файлик нужно только единожды заполнить, потом он будет всегда сохранён, только копируй.
СПАСИБО.

Но где же этот скрипт был?! Я старался следить за обновлениями и скачивать себе по мере выхода, годы идут, и вот, пропустил. Крайне полезная штука. Где же это такое чудо выкладывалось?

Я, как ни странно, нашёл было рабочий способ. Ну, так как даже близко не программист, то черезжопный... Однако работает, как ни странно... В скрипте Генеральная уборка есть примеры замены, там просто скопировал нужный вариант, и в конце шаблонов подобавлял новые var re92, var re93, короче, успел только 5 словоформ внести, а тут и вы отписались.
Это скрипт просто конфетка.
СПАСИБО.

воскресенье, 7 сентября 2025 г. в 16:43:21 UTC+3, sto...@gmail.com:

Sclex

unread,
Sep 7, 2025, 10:26:32 AM9/7/25
to Fiction Book Editor
stokber, я проверил работу вашего скрипта на одном простом случае - все сработало как надо. Спасибо! (Заниматься более подробным тестированием вашего сценария сейчас не буду.) Когда надо будет залить скрипт в хранилище - пожалуйста дайте знать.

воскресенье, 7 сентября 2025 г. в 16:37:18 UTC+3, sto...@gmail.com:

stokber

unread,
Sep 7, 2025, 11:28:34 AM9/7/25
to Fiction Book Editor
>Иван
Всегда пожалуйста! Но не спешите благодарить. Ранее этот скрипт не выкладывался, т.к. есть один нюанс, который нужно иметь ввиду, но до правки которого ещё не дошли руки. Слова с неполным форматированием скрипт может принять за несколько слов. Т. е. напр., если половина слова курсивом, а вторая полужирным или обычным, это будет два разных слова. Поэтому, желательно предварительно убедиться, что такие слова с разным начертанием если и имеются в документе, то их части никак с вашим списком заменяемых не пересекаются, или заранее поправить начертания. Пока так. Может нужно выводить список таких стремных слов, их всёравно, скорее всего нужно править. Или что-нибудь иное нужно придумывать.

>Sclex
Не заливайте пока. Подумаю ещё. 
воскресенье, 7 сентября 2025 г. в 17:26:32 UTC+3, Sclex:

Иван

unread,
Jan 22, 2026, 12:09:22 PMJan 22
to Fiction Book Editor
Пользовался все это время весьма интенсивно.
Вот вы говорите "не спешите благодарить" - но как же этого не делать, если скрипт работает (в моем случае) без нареканий и архиполезен? :))
Огромное вам спасибо еще раз!

Возник такой вопрос.
А можно ли скрипт подправить так, чтобы он заменял одно слова на ДВА слова? В ряде кое-каких ситуаций мне это нужно.
Вы, как создатель, сориентируете меня? Ткните в строчку кода и скажите "добавь туда". Я потом сделаю себе отдельный скриптик из текущего оригинала на этот случай, чтобы общий скрипт "для всех" не трогать.
Что мне нужно: в текущей форме замена ОДНО слово на ДРУГОЕ ОДНО слово работает без нареканий. Далее хотелось бы (добавить одной строчкой), чтобы ОДНО слово заменялось на ДВА слова, при этом у меня такие ситуации, когда это второе слово -- одно на все замены (например, 30 штук) за единую операцию редактирования. То есть, пример,
прошел прошла
вышел вышла
перешел перешла

Тут все отлично работает.
А нужно:
прошел прошла она
вышел вышла она
перешел перешла она

Сам я, когда открыл js, не смог разобраться. 
Чую, что куда-то сюда надо добавить/подправить, но образования не хватает.
v a r r e g e x p = n e w R e g E x p ("[a-zа-яё]+ [a-zа-яё]+ [a-zа-яё]+","i");

В конце концов, даже если нельзя, например, регулярным выражением добавить в конце каждой замены одно единое (второе) слово на всё, у меня их не так много, я могу себе скриптиков понаделать на каждый случай, вы только пальцем ткните куда надо.
Будет, например,
v a r r e g e x p = n e w R e g E x p ("[a-zа-яё]+ [a-zа-яё]+ ["она"]+","i");
v a r r e g e x p = n e w R e g E x p ("[a-zа-яё]+ [a-zа-яё]+ ["второй"]+","i");

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

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


воскресенье, 7 сентября 2025 г. в 18:28:34 UTC+3, sto...@gmail.com:

stokber

unread,
Jan 23, 2026, 6:09:01 AMJan 23
to Fiction Book Editor
Спасибо за замечания. В следующей версии постараюсь это исправить.

четверг, 22 января 2026 г. в 20:09:22 UTC+3, Иван:
Reply all
Reply to author
Forward
0 new messages