InDesign GREP все между двумя последовательными возвратами и цифрой (или) возвратом

Скажем, у меня есть текст в следующем формате:

Текст перед форматированием

То, что я пытаюсь стилизовать с помощью GREP, — это начало каждого нового абзаца (после пустой строки) до тех пор, пока не будет достигнута цифра или возврат, чтобы это выглядело примерно так:

Текст после форматирования

Я использовал regexr , чтобы попытаться найти решение, но, похоже, оно не на 100% совместимо с утилитой InDesign GREP.

Ответы (2)

Обновленный ответ:

Проблема в том, что использование разрыва абзаца для каждой новой строки означает, что каждая строка является абзацем, а с помощью стилей абзаца GREP вы можете ориентироваться только на один абзац. Невозможно сказать, находитесь ли вы на первой линии, потому что каждая строка является первой строкой. Единственный способ обойти это - проверить, пуст ли предыдущий абзац... что я не думаю, что это возможно.

Если изменить разрывы абзаца на мягкие разрывы, вы можете использовать это:

(?<!\n).*?(?=\d|\n)

Если изменение разрывов невозможно, у меня нет обходного пути для абзацев без номеров, но вы можете настроить таргетинг только на те, которые используют это:

^.*?(?=\d)

Оригинальный ответ:

^.*?(?=\d|\n)

Объяснение -

^соответствует началу абзаца

.соответствует любому символу

*?соответствует 0 или 1 раз (поэтому мы совпадаем только до первой цифры)

(?=)смотрит вперед (соответствует, но не включает то, что в скобках)

\dсоответствует любой цифре

|ИЛИ ЖЕ

\nсоответствует разрыву строки


Для справки, Все это можно найти в справке InDesign .

Спасибо за попытку, но боюсь, что это неправильно. Это улавливает абсолютно все, что предшествует последнему абзацу. Таким образом, он будет стилизовать все до (но не включая) «vim at omittam urbanitas scribentur» в моем примере выше.
ОК - я пробовал ^.*?(?=\d|\n)(не \r, как в вашем примере), и это очень близко. Однако в моем примере это не работает для третьего абзаца.
Странно, надо будет попробовать, как только смогу открыть ID позже.
Ценится. И, просто для ясности, единственное место, где он не работает, это третий абзац; он не стилизует первую строку, но делает последующие до тех пор, пока не будет достигнута цифра.
Как вы делаете новые строки, это разрывы абзаца или мягкие разрывы строк?
Все они разбиты на абзацы — это будет передано клиенту, так что я должен KIS, насколько это возможно для них.
Если это разрывы абзаца, можете ли вы попробовать заменить их \nна $?
Это улавливает все, кроме цифр и содержит точки.
Хорошо, мне придется вернуться к этому, как только я вернусь к своему компьютеру через час или два.
Баги в дизайне с управляющими символами в определенных матчах довольно постоянно
Как бы мне это не нравилось, этот ответ, насколько мне известно, кажется правильным. Спасибо.

Это решение не основано на GREP, но, возможно, оно вам подходит. Для этого потребуется изменить разрывы абзацев на разрывы строк (что, учитывая контекст, было бы правильным?).

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

вложенный стиль линии

Спасибо за предложение - оно не совсем соответствует моим критериям, так как стилизует все в первой строке, а не только все до первой цифры. Однако из интереса, как вы указываете разрыв строки, а не разрыв абзаца?
О, ты прав! Абсолютная оговорка, извините за это. Я повнимательнее рассмотрю GREP, мне не удалось настроить то, что вам нужно, в моих тестах. Вы можете делать разрывы строк, shift + returnа не простоreturn