androidstudio正则占位替换
简书链接:androidstudio正则占位替换
文章字数:401,阅读全文大约需要1分钟
1 | @dimen/(.*?)_fract |
替换
1 | @fraction/$1_fract |
效果
1 | @dimen/numkeyboard_horizontalGap_fract |
替换为
1 | @fraction/numkeyboard_horizontalGap_fract |
做这个事情的原因:
eclipse不支持dimen里面写百分比,得换一种写法,但是这么多东西改起来太累了,很多个文件夹,那贼累,所以先给所有加上fract标记,代表xx%的,然后使用此正则一键替换了。
2021-9-11 15:47:10
汉化 先从简单的开始, 替换 匹配 a("我lOVE你“)
这样的,首尾为中文。
1 | (\(\"[\u4E00-\u9FFF][a-zA-Z]*[\u4E00-\u9FFF]*?\"\)) |
1 | (\(\"[\u4E00-\u9FFF][a-zA-Z]*[\u4E00-\u9FFF]*?\"\)) |
替换为
1 | ( TC.getStr(TC.getInstance(),R.string.no_defined_,$1) ) |
优化后,\((\".*?[\u4E00-\u9FFF].*?\")\)
替换为(TC.getDbStr(TC.getInstance(),0,$1))
上面很多漏的比如
Log.w(tag,”操作失败,可能当前” + aClassX.getName() + “类没有实例!”);
用
1 | (\"[\u4E00-\u9FFF]+\S+[\u4E00-\u9FFF]\" \+.*?\"\)) |
如果被抽取多次, throw new RuntimeException( TC.getStr(TC.getInstance(), R.string.no_defined_,(TC.getDbStr(TC.getInstance(),0,"没有初始化")) ) );
那么下面代码可以还原
TC\.getStr\(T.*(\".*?[\u4E00-\u9FFF]\").*?\)\;
TC.getDbStr(TC.getInstance(),0,$1);
意思就是把””里面的包含中文的全部给抽取出来变成$1进行大一统。
屁股后面不是;的话,就要另外改。
正则写的不能匹配所有,总有一些漏网之鱼\(\"(.*?[\u4E00-\u9FFF].*?)\"
TC.getDbStr(TC.getAppContext(),0,"$1")
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 情迁博客!
评论