Home » Скрипты

Изменение регистра букв

17 Август 2010 6 Comments

Принесли на верстку текст, в котором полным-полно слов, набранных прописными буквами. И ладно бы только обычными прописными, а то в ряде случаев строчные буквы переключены во ‘все прописные’. (Кто-то по ходу набора знакомился с возможностями Word, и результаты этих экзерсисов попали на вёрстку.)

Вот бы все их одним махом сделать строчными, да ещё символьный стиль приложить!

Но сразу не прокатило. И GREP не помог. Пришлось обратиться к Всемирному Разуму, и Интернет не отставил без ответа.

На RUDTP в разделе про GREP (сообщения 352, 353) нашлась ссылка на скрипт, решающий похожую задачу.

Скрипт отличный, его автор Thomas Silkjær, но в моем конкретном случае потребовалось несколько изменить программу.

Вот что было сделано:

  • Диалог и сообщения теперь на русском языке;
  • Добавлено для наглядности выражение поиска;
  • Регистр набранного текста — ‘нормальный текст’ / ‘все прописные’ / ‘малые прописные’  —  тоже стал объектом поиска;
  • В оригинальной версии скрипт не спрашивая заменял все буквы, отвечавшие введенному выражению поиска. В этом варианте добавлен режим работы, в котором пользователь подтверждает каждую замену;
  • Теперь можно обрабатывать только выделенный текст (в исходном скрипте обрабатывалась вся статья или весь документ);
  • При обработке найденных слов можно определить — заменять слово полностью, или сохранить регистр первой буквы.

Примеры использования скрипта

Вот для пробы варианты GREP-запросов, что могут быть полезными при работе с этим скриптом:

\u — поиск прописных букв;

\u{2,} — поиск слов, в которых по крайней мере первые две буквы прописные.

\u+\b — поиск слов полностью из прописных букв (в выборку попадут и однобуквенные предлоги).

\u{3,}\b — поиск слов, в которых по крайней мере первые три буквы прописные (в выборку попадут и трехбуквенные предлоги).

(Прежде чем давать скрипту новую GREP-строку для поиска, имеет смысл сперва в режиме поиска-замены убедиться, что она работает.)

Если в принесенном тексте набранный строчными буквами текст средствами программы Word переведен в прописные, то вернуть строчное написание букв помогут такие установки:

changecase003

В архиве исходный скрипт search_change_case.jsx и новый вариант SearchChangeCase.jsx.

Скачать архив со скриптами

P.S.  Пока возился с этим текстом и скриптом, понял, что был неправ, утверждая, что штатный инструмент GREP не может решить эту задачу. Может! И запрос поиска замены можно сохранить на будущее. В общем, похоже, этот скрипт для меня был ступенькой в освоении GREP. Оставим его в коллекции скриптов сайта, может кому-то будет проще с его помощью решать подобные задачи, не вникая в тонкости GREP.

Михаил Иванюшин

ivanyushin#yandex.ru

Изменение регистра букв

Принесли на верстку текст, в котором полным-полно слов, набранных прописными буквами.
И ладно бы только обычными прописными, а то в ряде случаев строчные буквы переключены в ‘все прописные’. (Кто-то по ходу набора знакомился с возможностями Word, и результаты этих экзерсисов попали на вёрстку.)

Вот бы все их одним махом сделать строчными, да ещё символьный стиль приложить!

Но сразу не прокатило. И GREP не помог.

Пришлось обратиться к Всемирному Разуму, и Интернет не отставил без ответа.

На RUDTP в разделе про GREP (http://forum.rudtp.ru/showthread.php?t=28482&page=18

сообщения 352, 353) нашлась ссылка на скрипт, решающий похожую задачу.

http://indesigning.net/user/files/scripts/search_change_case.jsx

Скрипт отличный, его автор Thomas Silkjær, но в моем конкретном случае потребовалось несколько изменить программу.

Вот что было сделано:

- Диалог и сообщения теперь на русском языке;

- Добавлено для наглядности выражение поиска;

- Регистр набранного текста — ‘нормальный текст’ / ‘все прописные’ / ‘малые прописные’ тоже стал объектом поиска;

- В оригинальной версии скрипт не спрашивая заменял все буквы, отвечавшие введенному выражению поиска. В этом варианте добавлен режим работы, в котором пользователь подтверждает каждую замену;

- Теперь можно обрабатывать только выделенный текст (в исходном скрипте обрабатывалась вся статья или весь документ);

- При обработке найденных слов можно определить — заменять слово полностью, или сохранить регистр первой буквы.

Примеры использования скрипта

Вот для пробы варианты GREP-запросов, что могут быть полезными при работе с этим скриптом:

\u — поиск прописных букв;

\u{2,} — поиск слов, в которых по крайней мере первые две буквы прописные.

\u+\b — поиск слов полностью из прописных букв (в выборку попадут и однобуквенные предлоги).

\u{3,}\b — поиск слов, в которых по крайней мере первые три буквы прописные (в выборку попадут и трехбуквенные предлоги).

(Прежде чем давать скрипту новую GREP-строку для поиска, имеет смысл сперва в режиме поиска-замены убедиться, что она работает.)

Если в принесенном тексте набранный строчными буквами текст средствами программы Word переведен в прописные, то вернуть строчное написание букв помогут такие установки:

В архиве исходный скрипт search_change_case.jsx и новый вариант SearchChangeCase.jsx.

Михаил Иванюшин

ivanyushin#yandex.ru

P.S. Пока возился с этим текстом и скриптом, понял, что был неправ, утверждая, что штатный инструмент GREP не может решить эту задачу. Может! И запрос поиска замены можно сохранить на будущее. В общем, похоже, этот скрипт для меня был ступенькой в освоении GREP. Оставим его в коллекции скриптов сайта, может кому-то будет проще с его помощью решать подобные задачи, не вникая в тонкости GREP.

6 Comments »

  • peppper said:

    спасибо, попробуем!

  • Dorm said:

    Скажите, пжл, а если слово стоит в начале абзаца. Эта проблема решается скриптом или он ВСЕ переводит в строчные?

  • iv-mi said:

    Скрипт переводит корректно те слова, что отвечают шаблону поиска, не важно где — в середине текста или в начале абзаца.
    Через некоторое время, надеюсь, сегодня, тут будет обновленный скрипт.
    Там нашлось место для некоторых улучшений. :)

  • 7800 said:

    Раскройте же секрет GREP-выражения которое способно делать этот фокус!

  • 7800 said:

    В частности интересует именно часть «Заменить на», с частью «Найти текст» все понятно.

  • k_kolya said:

    Господа, если кому-то поможет, то изменить регистр можно при помощи Word. Волшебные Shift+F3 спасут.

Leave your response!

You must be logged in to post a comment.