InDesign:如何删除方括号之间的所有内容

平面设计 土坯设计 批量处理 设计脚本 javascript grep
2022-02-28 06:51:14

我有一个脚本来查找文档中的所有文本框,并执行正则表达式来删除(如果包含)方括号内的所有文本。

例如,文本框架可能包含:

“Lorem ipsum dolor sit amet, consectetur adipiscing elit [test] 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;
}
1个回答

您不需要编写脚本,只需

  • 点击Ctrl+F并切换到“GREP”选项卡
  • \[[^]]*\]在“查找内容”字段中输入
  • 或键入相同的内容并\s?在前面添加以删除任何前面的空格,否则您将留下双空格。所以那是\s?\[[^]]*\]
  • 确保“更改为”字段为空
  • 点击“全部更改”

在此处输入图像描述