2014-09-21 3 views
1

У меня есть команда GREP:GREP код для InDesign Поиск

(?<=say).+.".+?" 

Он находит все строки, которые имеют сказать (но не включает его), процитировал слова и символы между ним.

Он хотел бы внести изменения только цитируемых слов (не символов между ними), но

(?<=say)(?<=.+.)".+?" 

это не работает.

Вот пример текста мне нужно изменить:

Я говорил с капитаном, говоря: «Сэр, я хотел бы домой».

... сказать: «Это путь».

Что следует изменить в этой командой GREP:

Я говорил с капитаном, говоря: «Сэр, я хотел бы домой».

... сказать, «Это путь».

Не мог бы кто-нибудь мне помочь?

+0

ли курсив в тексте также? Известно, что некоторые операции GREP испортили его. – usr2564301

ответ

3

Я не думаю, что вы можете иметь переменную длину lookbehind; это невозможно в большинстве вариантов REGEX, и я бы сказал, что это касается ID. Вы могли бы сделать два Greps, один из которых применил бы стиль ко всему после «say», а другой - удалить его из текста между say и отметкой кавычки (это, конечно, не предполагало бы другого промежуточного отображения). Или вы можете использовать свое исходное регулярное выражение для вставки некоторых символов, которые вы могли бы искать и использовать в качестве основы для применения курсива. Или, вы могли бы написать его.

Эта страница рассказывает о ограничениях просмотра назад: http://www.regular-expressions.info/lookaround.html

Пример использование положительного просмотра назад и предпросмотра, чтобы найти содержание между «говорить» и в кавычках:

(?<=say).+?(?=") 
+1

Правильно. Единственный способ подражать ему - использовать OR: '((? <= Say) | (? <= Say.) | (? <= Say ..))' ... повторяется столько же, сколько и символы lookbehind по мере необходимости/возможно. – usr2564301

+0

Кристина сказала: «Вы могли бы сделать два Грепа, один, чтобы применить стиль ко всему после« скажите », а другой - удалить его из текста между словами и отметкой кавычки (это, конечно же, не предполагает другого промежуточного отображения). " Как это сделать: (? <= Say). +? (? <= "), Но он по-прежнему включает в себя цитату. – Mauritz

+0

? <= Положительный lookbehind. Вы бы хотели получить положительный результат. для примера. – Christina

 Смежные вопросы

  • Нет связанных вопросов^_^