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

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

发布时间:2020-12-15 07:19:02 所属栏目:百科 来源:网络整理
导读:第一次接触android 时候,为了加快自己敲打速度,尝试这个正则去匹配id取值。 写这个主要的目的是尝试学习使用这个正则,使用这种方式钱匹配里面字符串内容。 (.*?)” 这种方式去匹配一个组件类型。 但是这种字符串很受格式影响,一个空格也好换行也好也会

第一次接触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;
}

(编辑:李大同)

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

    推荐文章
      热点阅读