Как заставить GREP сопоставлять все между двумя маркерами, независимо от возникновения Forced Line Brake

Мне интересно, можно ли заставить GREP «перепрыгнуть» принудительный линейный тормоз (FLB), пока он ищет определенное ключевое слово.

У меня есть текстовый фрейм, содержащий несколько компаний, описанных тремя категориями:

    1. Company's Name
    2. Website
    3. Short Description.

Каждая категория отмечена в тексте своим маркером (ключевым словом) в начале ее:

    MARKER1 Dreamworks Studios [FLB]
    MARKER2 www_dreamworks_xxx/info/info [FLB]
    MARKER3 company that produces movies [PR]
    MARKER1 Coca-Cola Company [FLB]
    MARKER2 www_cocacola_xxx/info/info [FLB]
    MARKER3 company that produces drinks [PR]
    ...etc.

Теперь к каждой из этих трех категорий должен быть применен отдельный СТИЛЬ СИМВОЛА с использованием GREP. Я хочу, чтобы GREP выполнял поиск по тексту, пока не найдет определенный маркер, и применил нужный СТИЛЬ ко всему... до следующего маркера:

    everything between MARKER1 and MARKER2 should get STYLE1
    everything between MARKER2 and MARKER3 should get STYLE2
    everything between MARKER3 and MARKER1 should get STYLE3

И это довольно просто... до тех пор, пока мне не придется использовать больше FLB между маркерами:

    MARKER1 Dreamworks [FLB]
    Studios [FLB]
    MARKER2 www_dreamworks_xxx/ [FLB]
    info/info [FLB]
    MARKER3 company that[FLB]
    produces [FLB]
    movies [PR]
    ...etc.

Когда текст выглядит так, как показано выше, все мои концепции для предложений GREP терпят неудачу. Я наткнулся здесь на это полезное предложение, которое хорошо, если текст выглядит как в первом примере (без нескольких FLB-ов между маркерами) или если используется только один стиль и одна категория. Вот как я использую его, чтобы применить STYLE1 к части текста первой категории:

Apply: 
    STYLE1
to Text: 
    ^.*?((MARKER2)|$)

Но когда я использую подобное предложение со следующей категорией (меняя только маркер), оно не работает должным образом. из-за этих дополнительных FLB-ов.

Итак, я повторяю свой вопрос: можно ли заставить GREP «перепрыгивать» Forced Line Brake (FLB) при поиске определенного ключевого слова?

Ответы (1)

Вам нужно условие.

В псевдокоде:

Если это состояние истинно (поиск ключевого слова), то перепрыгните через FLB.

Еще

Не прыгайте с FLB

И, вероятно, поместите это в цикл, чтобы он решался на протяжении всего документа.

Очевидно, GREP может работать с условными операторами... может быть.

С точки зрения логики - я с вами согласен. Точно так же я подходил к этой проблеме. Но КАК заставить эту логику работать в GREP от Indesign? Я искал условные команды GREP в Интернете и ничего. Я получил только команду «ИЛИ», которую я включил в свою логическую структуру и в команды GREP, но это не сработало. Можете ли вы помочь мне более непосредственно? Какие команды GREP я должен искать для этого условного поиска? Или может есть другой вариант? Я думал о применении набора из 3 СТИЛЕЙ АБЗАЦЕВ к текстовому фрейму (со «следующим стилем»). Что вы думаете?