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

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

Art®

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

это скриптом надо
 
Ответ: 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();
 

Вложения

Поиск-замена, как?

Коллеги!

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

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

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

Заранее спасибо!
 
Ответ: Поиск-замена, как?

Поиск: ([[:punct:]])(?!\s)
Замена: $1
 
Ответ: Поиск-замена, как?

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

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

Можно так:
Код:
FW: ([.,?!;:])([\l\u])
CT: $1 $2
 
Ответ: Поиск-замена, как?

Супер! Спасибо, коллеги!
 
Ответ: GREP в InDesign. Что и как

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

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

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


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

или

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

заменить
$1\t
 
Ответ: GREP в InDesign. Что и как

\s включает \t
 
Ответ: GREP в InDesign. Что и как

вместо \s - пробел)
 
Ответ: GREP в InDesign. Что и как

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