InDesign: как убрать все, что находится в квадратных скобках

У меня есть скрипт для поиска всех текстовых фреймов в документе и выполнения регулярного выражения для удаления (если он содержится) всего текста внутри квадратных скобок.

Например, текстовый фрейм может содержать:

«Lorem ipsum dolor sit amet, consectetur adipiscing elit [тест] Lorem ipsum dolor sit amet, consectetur adipiscing elit [test2]»

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

Если я запущу приведенный ниже скрипт, он избавится от [test], но не от [test2].

var myFrames = app.activeDocument.textFrames;

for (var i = 0; i<myFrames.length; i++) {
   var myFrame = myFrames[i];
   var string = myFrame.contents;
   var string2 = string.replace(/ *\[[^\]]*]/, '');
   myFrame.contents = string2;
}
Я не слишком знаком с индизайном, поэтому я подумал, что сценарий будет лучшей идеей, как мне использовать поиск/изменение GREP, чтобы удалить все, что находится в квадратных скобках? Спасибо!

Ответы (1)

Вам не нужно писать сценарий, просто

  • нажмите Ctrl+ Fи переключитесь на вкладку «GREP»
  • введите \[[^]]*\]в поле «Найти что»
  • или введите то же самое с \s?добавленным впереди, чтобы также удалить все предшествующие пробелы, иначе у вас останутся двойные пробелы. так вот\s?\[[^]]*\]
  • убедитесь, что поле «Изменить на» пусто
  • нажмите «Изменить все»

введите описание изображения здесь