使用 enumerateChildNodesWithName 方法进行高级搜索

Advanced search using enumerateChildNodesWithName method

我有十个精灵(A0、A2...A9 精灵),我正在使用下一个搜索字符串 A[0-9] 枚举它们的父级 (myNode) 以匹配名为 A0 的精灵, A1...A9.

来自关于使用此 模式 作为搜索字符串的文档:

This search string matches any of the current node’s children that are named A0, A1, …, A9.

这是我使用的代码:

myNode.enumerateChildNodesWithName("A[0-9]") { sprite, stop in

     //do some stuff here    
}

这有效,正如文档中所述。但是,假设我现在有 20 个精灵...当我尝试匹配名为 A1、A2、A3...A20 的精灵时,如下所示:

myNode.enumerateChildNodesWithName("A[0-20]") {...}

它没有用...我是对这个功能期望太高还是遗漏了什么?

我可以通过几种不同的方式匹配所需的精灵,例如,将它们放在同一个容器中并枚举其中的所有精灵,但这不是重点,我想知道是否有为了使用 [lowerBound-upperBound] 符号可以做些什么?

将您的精灵命名为 A01-A20 并尝试 A[0-2][1-9]

编辑:看起来搜索参数实际上是一个正则表达式。来自函数的声明:

name An Xpath style path that can include simple regular expressions for matching node names.

所以 ^A[0-9]{1,2}$ 将匹配 'A' 后跟一位或两位数字作为完整的节点名称。