flash与字符串:抽离安卓xml描述文件ID

来源:互联网 发布:指南针经纬度软件下载 编辑:程序博客网 时间:2024/06/05 18:02

第一次接触android 时候,为了加快自己敲打速度,尝试这个正则去匹配id取值。
写这个主要的目的是尝试学习使用这个正则,使用这种方式钱匹配里面字符串内容。 <(.*?)\” 这种方式去匹配一个组件类型。
但是这种字符串很受格式影响,一个空格也好换行也好也会影响抽离的结果。对于一些需求,还是要好好把握其方向可以做到什么程度。

下面做了一个小工具。对于这些声明 可以快速地 处理。既学习正则也可以体现一下这种与字符串打交道乐趣。

使用AIR 可以做的更加极致一点很方便去调用。

这里写图片描述

import flash.text.*;var codeText:TextField  = new TextField();codeText.text = "粘贴Egret代码";codeText.width = 736.95;codeText.height = 223.85;codeText.type = TextFieldType.INPUT;codeText.border = true;codeText.x = 25;codeText.y = 20;codeText.multiline = true;addChild(codeText);var resultText:TextField  = new TextField();resultText.text = "输出结果";resultText.width = 736.95;resultText.height = 223.85;resultText.type = TextFieldType.DYNAMIC;resultText.border = true;resultText.x = 25;resultText.y = 262;resultText.multiline = true;addChild(resultText);stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDownHandler);function onKeyDownHandler(event:KeyboardEvent):void{    if (event.keyCode == 13)    {        changeCode();    }}//抽离id值function changeCode():void{    var codeStr:String = codeText.text;    var array:Array = codeStr.split("\r");    var typeReg:RegExp = new RegExp("<(.*?)\\s","gi");    var reg:RegExp =/id\/(.*?)\"/ig;    var resultStr:String = "";//结果1    var resultStr2:String = "";//结果2    var flag:int = 1;    var typeStr:String = "";    var idStr:String = "";    for each (var str:String in array)    {        //搜索空格符        var typeTempArray:Array = str.match(typeReg);        if ( flag==2)        {            var defTempArray:Array = str.match(reg);            typeTempArray = str.match(typeReg);            if (typeTempArray && typeTempArray[0])            {               typeStr = typeTempArray[0].replace("<","");             }            if (defTempArray && defTempArray[0])            {                idStr = defTempArray[0].replace("id/","").replace("\"","");                //trace("获取到ID对象"+typeStr);                resultStr +=  "private #2 #1;".replace("#1",idStr).replace("#2",typeStr) + "\n";                resultStr2 +=  "#1=(#2)findViewById(R.id.#1) ;".replace(/#1/ig,idStr).replace(/#2/ig,typeStr) + "\n";                flag = 1;            }        }        if (typeTempArray && typeTempArray[0])        {            flag = 2;            typeStr = typeTempArray[0].replace("<","");         }    }    resultText.text = resultStr+"\n"+resultStr2;}
0 0
原创粉丝点击