【发布时间】:2013-10-27 11:41:57
【问题描述】:
我想使用正则表达式从字符串中提取,为什么它不起作用? 从“10:13*12,20:23*22,60:36*432,...”,我想提取 10:13*12 然后 20:23*22 等等。然后,我想从 10:13*12、10、13 和 12 中提取,与 20:23*22 相同。
例如:levelObjs[i] = "10:13*12,20:23*22,60:36*432,..."
var levelObjExp:RegExp = /(.*?),/ig;
var levelObjInfoExp:RegExp = /(\d+):(\d+)*(\d+)/ig;
for(var i:int = 0; i < levelObjs.length; i++) {
if(levelObjs[i] != 0){
var levelObj:Object = levelObjExp.exec(levelObjs[i]);
while (levelObj != null) {
trace (levelObj[1]);
var levelObjInfo:Object = levelObjInfoExp.exec(levelObj[1]);
if (levelObjInfo != null) {
var levelObjNum:int = levelObjInfo[1];
var levelObjX:int = levelObjInfo[2];
var levelObjY:int = levelObjInfo[3];
trace(levelObjNum, levelObjX, levelObjY);
}
levelObj = levelObjExp.exec(levelObjs[i]);
}
}
}
此外,此代码需要在每一帧上,并且需要简单并尽可能少使用 CPU。正则表达式是否使用相对较多的 CPU 使用率?也许有更好的方法可以在不使用正则表达式的情况下做到这一点?
【问题讨论】:
标签: regex actionscript-3 cpu