Слово и знак препинания после него

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

Art®

Индюкатор
Топикстартер
15 лет на форуме
Сообщения
538
Реакции
53
Доброго всем времени.
Что-то не могу решить вопрос.
Нужно найти слово, выделенное символьным стилем, знак препинания после него (без стиля или с другим символьным) и заменить стиль знака препинания стилем находящегося перед ним слова.
Возможно ли? Спасибо.
 

Skvoznyak

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

это скриптом надо
 

iv-mi

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

Вот вариант скрипта, решающую эту задачу:
Код:
// FormatFollowSignAsWord.jsx
// InDesign CS3, InDesign CS4
//
// В статье ищется слово, выделенное символьным стилем, знак препинания после него (без стиля или с другим символьным) 
// и заменяется стиль знака препинания на стиль находящегося перед ним слова.
// Знаки препинания перечислены в стоке myPunctiationSigns, которую можно пополнять. Новый знак отделяется от предыдущего вертикальной линией.
// Перечень символов в строке myCharacters. Сейчас учитываются русские, латинские, немецкие буквы и цифры. Можно дополнить эту строку французскими, чешскими, польскими и др. буквами,
//
myCharacters = "[а-яА-Яa-zA-Z0-9üäößÜÄÖ]";
myPunctiationSigns = "[.|,|;|!|:|?|…]";
var myChar;
var mySign;
if(app.documents.length != 0)  { // doc = 0
var myDocument = app.documents.item(0);
var mySelection = app.selection[0];
if(app.selection.length != 0) { // selection = 0
        switch(mySelection.constructor.name) { // switch
            case "Text":
            case "InsertionPoint":
            case "Character":
            case "Word":
            case "Line":
            case "TextStyleRange":
            case "Paragraph":
            case "TextColumn":
            case "TextFrame":
var myStory = mySelection.parentStory;
var myPattern = myCharacters + myPunctiationSigns;
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.findWhat =myPattern;
var myFound = myStory.findGrep ();
if (myFound.length != 0) { // if
    for (i=0; i<myFound.length; i++) { // for
        myChar = myFound[i].characters[0]; // найденная буква
        mySign = myFound[i].characters[1]; // знак пунктуации после найденной буквы
        mySign.appliedCharacterStyle= myChar.appliedCharacterStyle; // присвоение символьного стиля найденной буквы символьному стилю знака препинания
        } // for
    } // if
alert("Теперь символьные форматы знаков препинания и слов одинаковые.");
exit();
} // switch
} // selection = 0
alert("Перед запуском скрипта поместите курсор в текст.");
exit();
} //doc = 0
alert("Нет открытых документов.");
exit();
 

Вложения

  • FormatFollowSignAsWord.zip
    1.5 КБ · Просм.: 298

Art®

Индюкатор
Топикстартер
15 лет на форуме
Сообщения
538
Реакции
53

Slx1

15 лет на форуме
Сообщения
944
Реакции
106
Поиск-замена, как?

Коллеги!

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

Есть ли способ сделать быстрый поиск/замену по типу "точка+любой печатный символ" на "точка+пробел+найденный печатный символ"... и т.п.

Догадываюсь, что через GREP можно, но сам не силен...

Заранее спасибо!
 

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Ответ: Поиск-замена, как?

Поиск: ([[:4)unct:]])(?!\s)
Замена: $1
 

_JVK_

Чатланин
10 лет на форуме
Сообщения
184
Реакции
175
Ответ: Поиск-замена, как?

Возможно так:
Код:
FW: ([[:punct:]])([\l\u])
CT: $1 $2

Только в этом случае тире и дефисы и слеши попадут в зону поиска.

Можно так:
Код:
FW: ([.,?!;:])([\l\u])
CT: $1 $2
 

Slx1

15 лет на форуме
Сообщения
944
Реакции
106
Ответ: Поиск-замена, как?

Супер! Спасибо, коллеги!
 

George

I wish I was a monster you think I am
15 лет на форуме
Сообщения
17 323
Реакции
7 870
Ответ: GREP в InDesign. Что и как

Требуется найти tab+слово+пробел и заменить на слово+tab. Прошу подсказать.
 

andrejK

R.I.P.
Сообщения
10 300
Реакции
5 218
Ответ: GREP в InDesign. Что и как

Георгий Михалыч(((

Что в этом сложного?


найти
\t(\w+)\s

или

\t([\l|\u]+)\s
(если только буквы)

заменить
$1\t
 

Skvoznyak

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

\s включает \t
 

andrejK

R.I.P.
Сообщения
10 300
Реакции
5 218
Ответ: GREP в InDesign. Что и как

вместо \s - пробел)
 

George

I wish I was a monster you think I am
15 лет на форуме
Сообщения
17 323
Реакции
7 870

NNN5

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

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