Використання grep в indesign - indesign - indesign - каталог статей - факультет графічних

Використання GREP в InDesign

Найпростіший спосіб познайомитися з регулярними виразами, і переконатися в їх перевазі над звичайним пошуком по тексту - розглянути кілька прикладів.
Стандартний пошук по тексту в InDesign CS2 дозволяє використовувати чотири шаблону (^ 9 - для будь-якої цифри, ^ $ - для будь-яку літеру, ^? - для будь-якого символу і ^ w - для будь-якого пробілу). Ці ж шаблони можна використовувати і в InDesign CS3 у вкладці пошуку по тексту (Text). Ці без сумніву корисні шаблони, однак мають ряд очевидних обмежень: використовуючи ці шаблони можна організувати пошук повторюваних елементів (наприклад, щоб знайти всі числа в тексті доведеться послідовно перебирати спочатку все числа з однієї цифри, потім з двох, з трьох і т.д. ), так само шаблони можна використовувати в рядку заміни (можна використовувати Малюнок ^ 9 для пошуку послідовності складається з слова "Малюнок" і наступної за ним цифри, проте заміна даної послідовності на що-небудь приведе до втрати цифри).


Використання grep в indesign - indesign - indesign - каталог статей - факультет графічних

При використанні ж регулярних виразів, для заміни всіх слів "Малюнок" з подальшою цифрою на слово "Фото" зі збереженням цифри, досить в рядку пошуку вказати Малюнок (# 92; d), а в рядку заміни Фото $ 1. Послідовність $ 1 в рядку заміни є покажчиком на результат пошуку укладений в дужки в рядку пошуку. Більш загальний випадок даного прикладу, виглядає так: рядок пошуку: Малюнок (# 92; d +), рядок заміни: Фото $ 1, і дозволяє знайти і замінити всі слова "Малюнок" з подальшим цілим числом (тобто послідовністю з однієї або більше цифр) на слово "Фото" зі збереженням наступного числа.


Використання grep в indesign - indesign - indesign - каталог статей - факультет графічних

Використання GREP в InDesign


У комп'ютерному жаргоні "wildcards" означає символ використовується для заміщення одного або декількох інших символів. Російська локалізація InDesign CS3 пропонує нам варіант перекладу - "групові символи". Я буду використовувати термін "шаблон" так як він коротше :-)
Шаблони (Wildcards) - одна з основине функцій GREP. Більшість з них перераховані в Пукто Wildcards випадающго меню поруч з рядком пошуку. Решта перебувають в двох пунктах меню: Quotation Marks і Posix.
Нарешті, свої власні шаблони можна створювати через визначення символьних класів. Розглянемо які шаблони і як ми можемо використовувати.

1. Будь-який символ.
Як випливає з назви цього шаблону відповідає будь-який символ (в звичайному текстовому пошуку для цього використовується шаблон ^?). Символ цього шаблону - точка. Якщо вказати точку в рядку пошуку і натиснути "Find", то по черзі будуть знайдені всі символи в тексті (за винятком символу нового абзацу). Шаблон будь-якого символу можна використовувати в поєднанні з іншими символами або шаблонами. Наприклад, результатом пошукового запиту "д..а" будуть всі слова з чотирьох букв починаються на д і закінчуються на а.

2. Будь-яка велика літера.
шаблон # 92; u дозволяє знайти в тексті заголовні букви. Тобто всі символи Unicode які можуть бути інтерпретовані як заголовні букви, такі як заголовні букви латинського алфавіту (в тому числі і з діактріческімі знаками), заголовні літери кириличного алфавіту, івриту, а також арабські. приклад - # 92; u # 92; u + для пошуку абревіатур. Даний запит читається так: "знайти велику літеру (# 92; u) плюс ще хоча б одну наступну за нею велику літеру" (оператор повторення + буде розглянуто пізніше).

Точка і зворотний слеш.
Точка в GREP є шаблоном будь-якого символу. А що якщо нам потрібно знайти точку в тексті, або символ зворотного слеша? Для цього в пошуковому запиті використовується "екранування" символом зворотного слеша (# 92;). Пошуковий запит для точки виглядає наступним чином - # 92 ;.

3. Будь-яка мала літера.
Для пошуку малих літер використовується шаблон # 92; l (рядкова L). Як і в разі вживання великої літери, результатом пошуку буду все символи Unicode, які можна інтерпретувати як малі літери. Наприклад, результатом пошукового запиту # 92; u # 92; l + будуть все слова починаються з великої літери.

4. Будь-яка буква.
Знаходить будь-яку букву, не роблячи відмінностей між малими та великими. [# 92; l # 92; u] насправді не шаблон, а символьний клас об'єднує два шаблони # 92; l і # 92; u. Але про символьних класах пізніше.

5. Будь-яка цифра.
# 92; d - шаблон для пошуку цифр від 0 до 9. У поєднанні з оператором повторення (# 92; d +) дозволяє знайти всі числа в тексті. Так само цього шаблону відповідають все стилістично змінені цифри: ступеня, чисельники і знаменники, а також дробу, створені функцією Fraction з панелі Character. Дробу введені з використанням значення Unicode (наприклад ¼ - 00BC) цього шаблону не відповідають (вони відповідають тільки шаблоном "будь-який символ").

Схожі статті