Предлоги в конце строки

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

Dusty_rat

Топикстартер
12 лет на форуме
Сообщения
333
Реакции
0
Попытка решения с помощью GREP проблемы предлогов в конце строки
(?<=\s[[:alpha:]])\s(?=[[:alpha:]]{2})
замена ессно на ~s
 

Dusty_rat

Топикстартер
12 лет на форуме
Сообщения
333
Реакции
0
Ответ: GREP в InDesign. Что и как

Наверно даже так:
(?<=\s[[:alpha:]]|\s[[:alpha:]]{2})\s(?=[[:alpha:]]{2}|\d)
 

kaatm

15 лет на форуме
Сообщения
1 101
Реакции
19
Ответ: GREP в InDesign. Что и как

Dusty_rat, проще так:
(\s[\l\u]{1,2})\s
$1~S
 

vbatushev

20 лет на форуме
Сообщения
2 242
Реакции
1 227
Ответ: GREP в InDesign. Что и как

\s — Matches any whitespace character including space, tab, form-feed, etc. Equivalent to [ \f\n\r\t\v].
Не боимся чо не надо зацепить?
 

kaatm

15 лет на форуме
Сообщения
1 101
Реакции
19
Ответ: GREP в InDesign. Что и как

Пожалуй, стоит доработать, да.
 

Alev

Участник
Сообщения
37
Реакции
0
Ответ: GREP в InDesign. Что и как

Не туда прибьются «её», «их», «же», «бы», «ли», «он», «ты» и многое другое.
 

Dusty_rat

Топикстартер
12 лет на форуме
Сообщения
333
Реакции
0
Ответ: GREP в InDesign. Что и как


Не по теме:
Разберёмсу... наверно. '8]
 

Alev

Участник
Сообщения
37
Реакции
0
Ответ: GREP в InDesign. Что и как

Правильнее списочек составить, вроде
( |\(|~{)(а|о|у|и|в|к|с)( )
заменить на
$1$2~s
Поправьте меня, а то проверить пока не на чем.
 

Art®

Индюкатор
15 лет на форуме
Сообщения
538
Реакции
53
Ответ: GREP в InDesign. Что и как

ты забыл «я» (во, почти каламбур... '))'
 

vbatushev

20 лет на форуме
Сообщения
2 242
Реакции
1 227
Ответ: GREP в InDesign. Что и как

А я бы так написал:
Поиск: "(?<=\<[аоуивкся]\>) "
Замена: "~s"

P.S. Кавычки не нужны, ес-но :)
 

Alev

Участник
Сообщения
37
Реакции
0
Ответ: GREP в InDesign. Что и как

А как сюда добавить До, Для, Но, При, Не и т. п.?
 

Dusty_rat

Топикстартер
12 лет на форуме
Сообщения
333
Реакции
0
Ответ: GREP в InDesign. Что и как

Может я туплю, но в эту конструкуию "или" не прикручивается
 

vbatushev

20 лет на форуме
Сообщения
2 242
Реакции
1 227
Ответ: GREP в InDesign. Что и как

Нет, конечно. ИЛИ (|) нельзя вписать внутрь диапазона ([]).

Понятно как это можно сделать в программе, но как же указать формат замены в этом файле?
Сделать можно. Готов продать секрет за деньги. Чо это я все бесплатно да бесплатно :)
 

Alev

Участник
Сообщения
37
Реакции
0
Ответ: GREP в InDesign. Что и как

Вот это работает:
grep {findWhat:"(?i)([ [=(=]«])([в|к|с|а|о|у|и|я])( )"} {changeTo:"$1$2~S"} {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false} Прибивает к последующему слову.
(| здесь для последующего добавления двух- и трёхбуквенных слов.)
Долго пытался применить \< \> и (?<=) — так ничего и не добился, при том что в диалоге поиска и замены всё работает. Кому-нибудь из уважаемых коллег удалось применить эти конструкции в FindChangeList.txt? Можно строчку для примера реальную посмотреть? Спасибо.
 

hardrain79

15 лет на форуме
Сообщения
24
Реакции
0
Ответ: GREP в InDesign. Что и как

vbatushev сказал(а):
Работает. Пример, где не работает. Желательно с устным пояснением, чего ищем.
Да самый простой пример как в руководстве: в строке "мама Мама МАМА apple Apple APPLE" ищем (?i)мама - находим только первое слово, ищем (?i)apple - находим все три.
 

rodocop

Участник
Сообщения
32
Реакции
0
Ответ: GREP в InDesign. Что и как

Сразу оговорюсь:

как и некоторые участники темы, я полный визуал, и в любом скриптинге разбираться - для меня кирдык полный.

Однако приперло и с помощью друзей, лома и такой-то матери стал решать пресловутую задачу - неотделение предлогов и вообще коротких слов от следующего слова через GREP.

Все в теме видел, читал, но тонкость вот в чем:
я предпочитаю атрибут nobreak знаку неразрывного пробела (оставим в стороне тему, почему так).
Соответственно, все приведенные решения с заменой на ~S меня не устраивают.

Вдвоем с коллегой-грепщиком родили такую формулу
Код:
[COLOR=Navy]Find what: [/COLOR]
[B](\b\w{1,2}\b )[/B]
[COLOR=Navy]Change to:[/COLOR]
[B]$1[/B]
В принципе, нормально работает, присваивая nobreak всем 1-2-буквенным словам и пробелу за ними. Проблема лишь в том, что почему-то порой сие глючит в верстке (в узеньких тектовых фреймах), и я решил искать просто пробел после коротких слов с помощью positive lookbehind'a, и получилась такая формула
Код:
(?<=\b\w{1,2}\b)\s
так вот сие не работает (cannot find match), ЧТО БЫ НИ СТОЯЛО позади лукбихайнда... Внутри оного также перепробовано все от взятия в скобки того, что лукбихайндим, до выкидывания границ слова по одной и вместе...

Что не так, кто поможет? А то Фридля я осилю через годик наверное :) Заранее благодарен за любые предложения и наставления на путь истинный...
 

rodocop

Участник
Сообщения
32
Реакции
0
Ответ: GREP в InDesign. Что и как

Огромное спасибо за инфу! Сам я раскопал бы это у Фридля (его главу про лукэраунд я прочитал одним глазом, но про эти ограничения то ли не нашел, то ли пропустил) и последователей не раньше, чем через год :4))

Придется варить мозгом иначе. Пока сделал только для 1-буквенных слов... Но это-то легко. А 2-буквенные, похоже, придется в массив загонять - все равно нужна только половина из них, а остальные надо лепить не к следующему, а к предыдущему слову :)
 
Статус
Закрыто для дальнейших ответов.