0

我想使用正则表达式从字符串中提取,为什么它不起作用?从“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 使用率?也许有更好的方法可以在不使用正则表达式的情况下做到这一点?

4

1 回答 1

0

可能是错误的正则表达式。

修复以下行

var levelObjInfoExp:RegExp = /(\d+):(\d+)*(\d+)/ig;

var levelObjInfoExp:RegExp = /(\d+):(\d+)\*(\d+)/i;
于 2013-10-27T03:41:57.483 回答