非常感谢版主的热心解答!
第二条规则已经能完美解决提取现有字段的需求,不过我漏了提到部分以小写字母开头,且带有下划线的字符串,比如date_time、fill_parent等,能否在这个正则表达式中进一步过滤这些字符串(这些是变量名,也不需要汉化)。除此之外,尚有一些不规律的字符串也是不需要汉化的,不过如果过滤掉以上这些,剩下的工作量就没那么大了!一个正则表达式不可能完全解决全部问题。
另外,由于android app反编译后除了在xml文件中有部分需要汉化的字符串外,还有大量的字符串存在于smali文件中需要汉化,我也使用文本解析器自定义了一个解析规则,情况基本类似上述xml中的过滤规则。现在碰到一个新问题:
我想用手中现有的一个该软件低版本已汉化过的app反编译得到的资源文件,来校准现在该软件新版本的资源文件,在使用我自定义的smali解析规则提取已汉化过的smali文件的字符串时,由于这些smali文件已经汉化过且使用的是UTF-8无BOM编码格式保存的,在提取这些字符串时,提取出的汉化字符变成了乱码,但我找不到在哪里可用设置读取这些源文件时采用UTF-8格式来读取的设置,不知道是不能设置,还是可以设置而我没有找到?我只找到在目标语言的字符串列表设置中可以设置保存目标文件时保持目标文件与源文件的格式一致的设置。像这个问题,应该如何解决呢?
再次感谢老师指点!
(附:已汉化过的smali文件和待汉化的smali文件,提取的字符串是const-string v\d, "“内的字符串,解析规则与xml相同)
smali.rar (6 K) 下载次数:1