InDesign Grep:将句子改为大写

时间:2014-03-20 03:00:45

标签: adobe-indesign grep-indesign

我对脚本相对较新,在InDesign脚本中我试图将所有句子的所有首字母都改为大写(很多都是小写的,因为我随机生成了不同文本来源的句子)。

我到目前为止能够找到这个Grep表达式的文本部分:

\.(\s)+\l

我还发现Peter Kahrel编写的这个剧本,他在InDesign Secrets上分享:

app.findGrepPreferences.findWhat = "^.";
found = app.activeDocument.findGrep();
for (i = 0; i < found.length; i++)
    found[i].characters[0].changecase (ChangecaseMode.lowercase);

然而,当我现在更换^。使用我自己的表达式,并将小写更改为大写,脚本不起作用,这是有道理的,因为我不想更改find​​Grep结果的第一个字符,而是最后一个。但是我怎样才能找到最后一个角色?句子之间的间隔有不同的长度,所以我不能简单地输入2而不是0。

任何帮助都将非常感谢!谢谢!

编辑:我正在使用CS6。

1 个答案:

答案 0 :(得分:1)

你的GREP返回以句点开头的匹配,然后有任意数量的空格(可能包括硬回车),并且总是以一个小写字符结尾。到现在为止还挺好。您可以通过以下方式访问最后一个字符(实际上是任何InDesign对象集合中的最后一个项目):

found[i].characters[-1].changecase (ChangecaseMode.lowercase);

哪个&#39;索引&#39;来自 end ,而不是从开始。

然而!除了句点和空格之外,匹配中仅字符始终为小写字母。所以你可以跳过整个&#34;如何找到正确的索引&#34;通过简单地将小写(或者,当你使用它,大写)应用于整个匹配时,并且可能稍微加快脚本的速度:

found[i].changecase (ChangecaseMode.lowercase);

因为不可小写的字符不会发生任何事情(我宣称这个词表示&#34; Unicode定义的属性为小写且具有大写的等效字符)。 (或者反过来说,如果我理解你的目的是正确的。)

相关问题