GREP-код для поиска InDesign

У меня есть команда GREP:

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

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

Хотелось бы внести изменения только в слова в кавычках (не символы между ними), но

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

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

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

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

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

Который должен быть изменен на это командой GREP:

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

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

Может ли кто-нибудь помочь мне?

1 ответ

Решение

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

На этой странице говорится об ограничениях внешнего вида: http://www.regular-expressions.info/lookaround.html

Пример использования положительного lookbehind и lookahead для поиска содержимого между "say" и кавычкой:

(?<=say).+?(?=")
Другие вопросы по тегам