}

Как выполняется операция поиска/замены в самой последней версии, показано в листинге 7.4.

Листинг 7.4. Поиск и замена в InDesign CS3

// Сброс параметров - неизменная операция арр.findTextPreferences = NothingEnum.nothing; app.changeTextPreferences = NothingEnum.nothing;

// Установка опций поиска with (app.findChangeTextOptions) caseSensitive = false; includeFootnotes = false; includeHiddenLayers = false; includeLockedLayersForFind = false; includeLockedstoriesForFind = false; includeMasterPages = false; wholeWord = false;

>

app.findTextPreferences.pointSize = 24; app.changeTextPreferences.pointSize = 10;

app.activeDocument.changeText() ;

7.2.1. Синтаксис регулярных выражений, используемых в InDesign CS3

Регулярные выражения - выражения, предназначенные для поиска текста по нечетким признакам: фактически вы указываете шаблон, который задает лишь минимальные условия для соответствия, а общее количество вариантов, построенных на базе шаблона, может быть огромным. С подобным подходом сталкиваются при поиске файлов в Windows: например, test?.* означает поиск файлов с любым расширением, у которых имя начинается с test; *.txt приводит к поиску любых файлов с расширением txt и т. д.

Термин "регулярное выражение" является общим названием подхода к поиску файлов, при этом конкретная реализация механизма поиска по маске в разных приложениях имеет отличия, порой достаточно существенные, что хорошо видно при сравнении JavaScript, Visual Basic for Applications и InDesign. Часто регулярные выражения сокращенно называют RegEx (от англ. Regular Expression), еще одно обозначение - GREP.

Вот, например, какой вид будет иметь в InDesign выражение для поиска адресов электронной почты:

app.findGrepPreferences.findWhat = " (?i) [A-Z]*?@[A-Z]; Несколько непривычно, не так ли? Тем не менее эта конструкция работает, мало того - она без проблем найдет ЛЮБОЙ адрес почты, что при использовании обычных инструментов InDesign можно только мечтать.

Как вы уже, наверное, догадались, регулярные выражения являются отдельным объектом в InDesign, со своими свойствами и методами. Соответственно, использование их подчиняется общим правилам работы с объектами.

Пример использования объекта findGrepPreferences представлен в листинге 7.5.

; Листинг 7.5. Использование объекта findGrepPreferences

app.findGrepPreferences = NothingEnum.nothing; app.changeGrepPreferences = NothingEnum.nothing; with (app.findChangeGrepOptions)

{

includeFootnotes = false; includeHiddenLayers = false;

includeLockedLayersForFind = false; includeLockedStoriesForFind = false; includeMasterPages = false;

}

Если вы используете регулярные выражения, опции для поиска форматированного текста нужно задавать для объекта findGrepPreferences: арр.findGrepPreferences.pointSize = 24; арр.changeGrepPreferences.underline = true; Операция замены производится похожим методом: арр.activeDocument.changeGrep(); При использовании регулярних выражений опции поиска слова целиком (wholeWord) и учета регистра (casesensitive) недоступны, поскольку такие возможности предусмотрены в синтаксисе регулярних выражений (табл. 7.1).


⇐ вернуться назад | | далее ⇒