Помогите со скриптом (найти\заменить)

  • Автор темы Автор темы LeshikSan
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

LeshikSan

Топикстартер
15 лет на форуме
Сообщения
266
Реакции
185
Помогите с простым скриптом.

Имеются словарные статьи (абзацы), напр.:
addition 1. добавка; присадка; 2. пристройка addition of clay глинование, addition of sand пескование

Нужно автоматизировать обработку каждого абзаца, при которой первое слово абзаца принималось бы за значение поиска, по которому в рамках этого абзаца находились такие же слова и заменялись на тильды:
addition 1. добавка; присадка; 2. пристройка ~ of clay глинование, ~ of sand пескование

Ломал голову как бы это сделать грэпом, но понял что без скрипта не обойтись. А осилить скриптописание что-то пока не получается :(
Подозреваю, что здесь вопрос каких-нибудь 4-5 строчек...

Буду очень признателен!
 
Ответ: Помогите со скриптом (найти\заменить)

пока не понимаю как сделать универсальное выражение, но можно несколько раз прогнать такое

^(\w+\>)(.*?)(\1)

$1$2~


может кто подскажет как за один проход сделать, или мне в голову придет, как его сформулировать...
 
Ответ: Помогите со скриптом (найти\заменить)

Skvoznyak, здорово!!!

(\1) - это что такое? Вот, в очередной раз убеждаюсь, что описание GREP в индюковом хелпе далеко от желаемого...

Да, теперь дело за малым - завязать на бесконечное повторение этот код:
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
app.findChangeGrepOptions.includeFootnotes = true;
app.findGrepPreferences.findWhat = "^(\\w+\\>)(.*?)(\\1)";
app.changeGrepPreferences.changeTo = "$1$2~";
app.activeDocument.changeGrep();

Skvoznyak, огромное тебе Спасибо! Да здравствует взаимовыручка!
 
Ответ: Помогите со скриптом (найти\заменить)

LeshikSan сказал(а):
Да, теперь дело за малым - завязать на бесконечное повторение этот код:

Прямо бесконечное?
 
Ответ: Помогите со скриптом (найти\заменить)

хе, ну я так и знал, что кто-нибудь да подтрунит меня 8*)
 
Ответ: Помогите со скриптом (найти\заменить)

LeshikSan сказал(а):
(\1) - это что такое? Вот, в очередной раз убеждаюсь, что описание GREP в индюковом хелпе далеко от желаемого...

backreference. ссылка на подвыражение. 1 - это номер подвыражения.

вообще говоря, grep не в Adobe придумали, поэтому можно смело читать доки от Perl. 95% сработает и в InD
 
Ответ: Помогите со скриптом (найти\заменить)

да, очень полезная вещь!

подсмотрел я тут строчку, которая вызывает повторный запуск найти/заменить
function d2h(d) {return d.toString(16).toUpperCase();}
вот только получается только один проход по материалу, т.е. каждый абзац обрабатывается один раз, скрипт доходит до конца материала и останавливается. может кто подскажет - что в этой сточке поправить, чтоб скрипт возвращался к началу материала?
 
Ответ: Помогите со скриптом (найти\заменить)

подсмотрел я тут строчку, которая вызывает повторный запуск найти/заменить
Я в истерике. Эта строчка конвертит число в 16-ричное представление, а не запускает повторные запуски.
 
Ответ: Помогите со скриптом (найти\заменить)

'8()' я тоже...
 
Статус
Закрыто для дальнейших ответов.