加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

小探正则

发布时间:2020-12-14 04:19:48 所属栏目:百科 来源:网络整理
导读:转载注:http://www.jb51.cc/article/p-hdtuzgal-cm.html SubLime Text 2中的正则测试: 获取包信息 bpackages+([w+.?]+) 获取取import信息 imports+([w+.?]+);$ 获取private/protected/public合并写法 但目前这里有个问题,就是无法区别:是local还

转载注:http://www.52php.cn/article/p-hdtuzgal-cm.html

SubLime Text 2中的正则测试:

获取包信息
bpackages+([w+.?]+)

获取取import信息
imports+([w+.?]+);$

获取private/protected/public合并写法
但目前这里有个问题,就是无法区别:是local还是global的变量,因为as3的global的变量也是可以不写访问级别,默认为:internal的后面再考虑
b(?:(public|private|protected)s+)?(static)?(const)?vars+(?:(w+)s*:s*(w+))s*(?:,s*(w+)s*:s*(w+))*s*(?:s*=s*(w+))?;$

获取方法信息
b((public|private|protected)s+)?functions+(w+)s*(s*((w+)s*(:s*(w+))?)s*(,s*((w+)s*(:s*(w+))?))*s*)s*:s*voids*(({[.wW]*?})+?)

获取类信息
bpublics*classs+(w+)(?:(s*(?:(extendss+(w+))?)s*(?:(?:implementss+(w+(,s*w+)*))?)s*)?)s*{

获取嵌入类信息
^s*classs+(w+?)((s*((extendss+(w+))?)s*((implementss+(w+))?)s*)?)s*{([.wW]*)}

测试采样数据:

package nParticleSys.sadfas.asdasdf.fdas.asdf {
    import flash.display.Bitmap;
    import flash.geom.Matrix;

    import starling.utils.Util;

    /** * [description] * @author Jave.Lin * @date 2016-7-20 * */
    public class Particle extends ExtCls implements IT1,IT2,IT3 {
        private static var _pool:Array = [];

        public static function getPs():Particle {
            var result:Particle;
            if (_pool.length > 0)
            {
                result = _pool.pop();
            }
            else
            {
                result = new Particle();
            }
            return result;
        }

        public static function recyclePs(ps:Particle):void {
            _pool.push(ps);
        }

        public static function init(ps:Particle):void {
            ps.x = ps.y = 0;
            ps.angle = 0;
            ps.scale = 1;
            ps.alpha = 1;

            ps.vx = ps.vy = 0;
            ps.angleV = 0;
            ps.scaleV = 0;
            ps.alphaV = 0;

            ps.elapsedTime = 0;
            ps.totalTime = 1;

            ps.transform = new Matrix();
            ps.enabled = true;
        }

        public var x:Number,y:Number;
        public var angle:Number;
        public var scale:Number;
        public var alpha:Number;

        public var vx:Number,vy:Number;
        public var angleV:Number;
        public var scaleV:Number;
        public var alphaV:Number;

        public var elapsedTime:Number;
        public var totalTime:Number;

        public var texture:Bitmap;

        public var transform:Matrix;

        public var enabled:Boolean;

        public function applyTransform():void {
            transform.identity();
            if (texture)
            {
                if (texture.bitmapData)
                {
                    transform.translate(texture.bitmapData.width * -0.5,texture.bitmapData.height * -0.5);
                }
                transform.scale(scale,scale);
                transform.rotate(angle);
                transform.translate(x,y);

                texture.transform.matrix = transform;

                texture.alpha = Util.clamp(alpha,0,1);
            }
        }

        public function recycle():void {
            elapsedTime = 0;
            totalTime = 0;
            enabled = false;
            transform = null;

            if (texture)
            {
                if (texture.parent)
                {
                    texture.parent.removeChild(texture);
                }
                texture.bitmapData = null;
                texture = null;
            }
        }
    }
}

   class Name {

}

距离写语法分析还有很长距离;
不同的语言中,正则的一些用法还是不一样的;
如:组引用,在py中

<?P<groupName1>

然后在正则中的引用

<?P=groupName1>

但在别的一些语言中,对正则的封装使用可能就不一样了。

如:在as3中,就没有别名组匹配
导致在外部调用时,还得自己去数,是第几个组;
或是运行后,看结果中,是第几个组来取数据,很不方便

==================== 然后今天搜索:编译原理相关内容,发现语法解析使用一个类似:Scaner的东西,逐字符扫描处理; 最后描述出来的是一个树结构的结果:叫语法树 在描述的过程中就可以得出语法异常; 如果能成功返回语法树对象,说明已成功编译完成; 要作的就是将:语法树,转为对应执行平台需要的指令集即可;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读