Illustrator脚本如何按精确名称选择图层,排除模糊匹配结果
Illustrator图层精确选择脚本修改方案
你原来的脚本使用的/shadow/i正则属于包含匹配,只要图层名称里有shadow子串就会命中,所以会误选其他带shadow的图层。要实现仅选中指定名称的图层,直接把匹配规则改成精确匹配目标名称即可。
方案1:正则精确匹配(适合固定匹配shadow、shadow-7的场景)
直接修改正则表达式限制匹配范围,仅完全匹配目标名称:
var aDoc = app.activeDocument; var pI = aDoc.pageItems; aDoc.selection = null; for (i=pI.length-1; i>=0; i--) { // ^匹配字符串开头,$匹配字符串结尾,(-7)?表示-7后缀可选,i保留不区分大小写的匹配规则 if (pI[i].name.match(/^shadow(-7)?$/i) != null) { pI[i].selected = true; } }
方案2:白名单数组匹配(适合后续需要频繁调整匹配目标的场景)
把需要选中的图层名称放在数组里统一维护,修改更灵活:
var aDoc = app.activeDocument; var pI = aDoc.pageItems; // 可自行增减数组内的目标图层名称 var targetNames = ["shadow", "shadow-7"]; aDoc.selection = null; for (i=pI.length-1; i>=0; i--) { // 转小写后匹配保留原脚本不区分大小写的特性 if (targetNames.includes(pI[i].name.toLowerCase())) { pI[i].selected = true; } }
内容的提问来源于stack exchange,提问作者longUtility
相关产品推荐
相关产品推荐

