[ID CC-CC2022] Поиск и замена текста

  • Автор темы Автор темы LayAndy
  • Дата начала Дата начала

LayAndy

Топикстартер
15 лет на форуме
Сообщения
50
Реакции
9
Доброго всем!
В книге много конструкций типа
Украшения: в рукописи
Содержание: лл. или Содержание: л.
Переплет: картон
Водяные знаки: 1).

Надо по всей книге заменить двоеточие на точку и следующую после пробела букву на прописную
Украшения. В рукописи
Содержание. Лл.
Переплет. Картон
Водяные знаки. 1).

Курсив принципиален, потому что варианты без курсива трогать не надо!
Не получается (((((
Помогите хотя бы советом, если можно
 
Попробуйте:
screenshot-263.jpg
 
Одним проходом это не сделать, и только поиском/заменой тоже не сделать.
Возможный вариант (не факт что единственный и оптимальный):

1. Пометить двоеточия после некурсивных слов специальным цветом :
\l: с форматом некурсивного начертания
замена на цвет.

2. Ввести выражение для поиска непомеченных двоеточий (т.е. после курсивных слов) с последующей буквой:
:\h\l с форматом непомеченного текста (видимо, с чёрным цветом).

3. С введённым выражением из п. 2 воспользоваться скриптом для замены регистра букв:

4. Непомеченные (чёрные) двоеточия заменить на точки.

5. Убрать все пометки цветом, т.е заменить специальный цвет на чёрный.
 
Последнее редактирование:
  • Спасибо
Реакции: LeonidB и LayAndy
Тут можно сделать последовательность запросов, решающую эту задачу без остановки на запуск скрипта.
Надо только знать, какой знак в том тексте отсутствует. (Ну или последовательность таких знаков). Будем считать, что в том тексте знак доллар не используется.
Тогда четыре запроса для DoQueryList:

AB1 - Добавим $ после слова курсивом
Искать
(\w+)
курсив

Заменить
$0$

AB2 - заменим двоеточие на точку; точка, пробел, буква -- верхний регистр
(я не знаю, почему откр.скобка двоеточие закр.скобка будут отображаться смайликом)
Искать
\$'))'(\h)([\l\d])

Заменить
.$2$3
Верхний регистр

AB3 - точка и пробел из верхнего регистра в обычный
Искать
.\h
Верхний регистр

Поле замены пустое. Понижаем регистр

AB4 - удалить знак доллар из текста
Искать
\$

Поле замены пустое
 
Последнее редактирование:
Я тут упомянул DoQueryList. Если кто не знает, то вот он:
 
А в грепе АВ3 я ошибся: вместо .\h должно быть \.\h
 

Не по теме:
я не знаю, почему... будут отображаться смайликом
А чтобы этого не происходило, регулярные выражения настоятельно советуют заключать в теги
Код:
ыыыыы

 
Последнее редактирование:
  • Спасибо
Реакции: _MBK_
Экспортнём текстовый блок в Adobe InDesign Tagged Text (Unicode)
Редактором с поддержкой регулярок меняем (<ParaStyle:.*?><cTypeface:Italic>.*?<cTypeface:>):\s(\w)
на $1. <cCase:All Caps>$2<cCase:>
Сохраняем, плейсим текст обратно.
 
  • Спасибо
Реакции: Ksenia и Petruccio