flash与字符串:抽离安卓xml描述文件ID
2015-10-15 12:28
453 查看
第一次接触android 时候,为了加快自己敲打速度,尝试这个正则去匹配id取值。
写这个主要的目的是尝试学习使用这个正则,使用这种方式钱匹配里面字符串内容。 <(.*?)\” 这种方式去匹配一个组件类型。
但是这种字符串很受格式影响,一个空格也好换行也好也会影响抽离的结果。对于一些需求,还是要好好把握其方向可以做到什么程度。
下面做了一个小工具。对于这些声明 可以快速地 处理。既学习正则也可以体现一下这种与字符串打交道乐趣。
使用AIR 可以做的更加极致一点很方便去调用。
写这个主要的目的是尝试学习使用这个正则,使用这种方式钱匹配里面字符串内容。 <(.*?)\” 这种方式去匹配一个组件类型。
但是这种字符串很受格式影响,一个空格也好换行也好也会影响抽离的结果。对于一些需求,还是要好好把握其方向可以做到什么程度。
下面做了一个小工具。对于这些声明 可以快速地 处理。既学习正则也可以体现一下这种与字符串打交道乐趣。
使用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; }
相关文章推荐
- Mybatis中的常用sql
- LVS Nginx HAProxy 优缺点
- 圆与任意多边形交的长度
- Skype for Business iOS版正式发布
- Linux服务器密钥安全登录
- Java并发编程:Timer和TimerTask
- jsp页面加载时自动执行action
- 黑马程序员——java集合框架——List接口
- [sic 4000 ily]1153. 马的周游问题
- Adobe Acrobat XI pro虚拟打印机的安装教程(附激活)
- 网曝广电总局公布81个非法视频软件
- JDBC详解
- 网曝广电总局公布81个非法视频软件
- 吴晓波:马化腾的“邮件癖”
- 对Hadoop二次排序的理解
- KVC 和 KVO 的使用场景
- 端口占用解决办法
- tomcat的最大线程数、最大排队数多少合适
- NSScanner类的基本用法
- MAC版 xampp 设置xdebug支持