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

LayAndy

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

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

Курсив принципиален, потому что варианты без курсива трогать не надо!
Не получается (((((
Помогите хотя бы советом, если можно
 

Masia

15 лет на форуме
Сообщения
127
Реакции
47
Попробуйте:
screenshot-263.jpg
 

К.Т.

Участник
Сообщения
324
Реакции
337
Одним проходом это не сделать, и только поиском/заменой тоже не сделать.
Возможный вариант (не факт что единственный и оптимальный):

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

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

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

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

5. Убрать все пометки цветом, т.е заменить специальный цвет на чёрный.
 
Последнее редактирование:
  • Спасибо
Реакции: LeonidB и LayAndy

iv-mi

15 лет на форуме
Сообщения
563
Реакции
375
Тут можно сделать последовательность запросов, решающую эту задачу без остановки на запуск скрипта.
Надо только знать, какой знак в том тексте отсутствует. (Ну или последовательность таких знаков). Будем считать, что в том тексте знак доллар не используется.
Тогда четыре запроса для DoQueryList:

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

Заменить
$0$

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

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

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

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

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

Поле замены пустое
 
Последнее редактирование:

iv-mi

15 лет на форуме
Сообщения
563
Реакции
375
Я тут упомянул DoQueryList. Если кто не знает, то вот он:
 

iv-mi

15 лет на форуме
Сообщения
563
Реакции
375
А в грепе АВ3 я ошибся: вместо .\h должно быть \.\h
 

LeonidB

Их бин
10 лет на форуме
Сообщения
2 469
Реакции
1 528

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

 
Последнее редактирование:
  • Спасибо
Реакции: _MBK_

lev

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