пятница, 18 июля 2008 г.

Использование GREP в InDesign. Часть 2. Wildcards.

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

1. Любой символ.
Как следует из названия этому шаблону соответствует любой символ (в обычном текстовом поиске для этого используется шаблон ^?). Символ этого шаблона – точка. Если указать точку в строке поиска и нажать "Find", то поочередно будут найдены все символы в тексте (за исключением символа нового абзаца). Шаблон любого символа можно использовать в сочетании с другими символами или шаблонами. Например, результатом поискового запроса "д..а" будут все слова из четырех букв начинающиеся на д и оканчивающиеся на а.

2. Любая заглавная буква.
Шаблон \u позволяет найти в тексте заглавные буквы. Тоесть все символы Unicode которые могут быть интерпретированы как заглавные буквы, такие как заглавные буквы латинского алфавита (в том числе и с диактрическими знаками), заглавные буквы кириллического алфавита, иврита, а также арабские. Пример – \u\u+ для поиска аббревиатур. Данный запрос читается следующим образом: "найти заглавную букву (\u) плюс еще хотябы одну следующую за ней заглавную букву" (оператор повторения + будет рассмотрен позже).

Точка и обратный слэш.
Точка в GREP является шаблоном любого символа. А что если нам нужно найти точку в тексте, или символ обратного слэша? Для этого в поисковом запросе используется "экранирование" символом обратного слэша (\). Поисковый запрос для точки выглядит следующим образом – \.

3. Любая строчная буква.
Для поиска строчных букв используется шаблон \l (строчная L). Как и в случае заглавных букв, результатом поиска буду все символы Unicode, которые можно интерпретировать как строчные буквы. Например, результатом поискового запроса \u\l+ будут все слова начинающиеся с заглавной буквы.

4. Любая буква.
Находит любую букву, не делая различий между строчными и прописными. [\l\u] на самом деле не шаблон, а символьный класс объединяющий два шаблона \l и \u. Но о символьных классах позже.

5. Любая цифра.
\d – шаблон для поиска цифр от 0 до 9. В сочетании с оператором повторения (\d+) позволяет найти все числа в тексте. Так же этому шаблону соответствуют все стилистически измененные цифры: степени, числители и знаменатели, а также дроби, созданные функцией Fraction из панели Character. Дроби введенные с использованием значения Unicode (например ¼ - 00BC) этому шаблону не соответствуют (они соответствуют только шаблону "любой символ").

3 комментария:

Анонимный комментирует...

Жаль, что так мало. Ищу инфу по грепу, ибо на купить книжку/пэдээфку сейчас вообще нет средств.

Unknown комментирует...

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

Заранее благодарен за ответ

Unknown комментирует...

Здравствуйте!

Что то я туплю, грепом давно не пользовался.

Есть нецелые числа через точку, после точки есть пробел, его надо убрать

поиск \d\.\ \d
находит правильно

замена... тут засада какая-то, ставлю $1.$2 и он тупо меняет на "$1.$2", $1.$4 меняет на "$1.$4"
я забыл где то в замене поставить символы?