好友
阅读权限10
听众
最后登录1970-1-1
|
你确定会用mt管理器的某些功能吗?
还是说只是会原始的基础操作或者说效率,操作,行为如履平地,如同远古时代一般?
还是说只是会用mt管理器傻傻的操作原生abcd?
这篇文章带你们重新认识mt管理器在某些基础功能模块引用的正则表达式
大部分都是搜索这个模块使用的正则式
索引1.介绍
mt管理器简介:mt管理器诞生到现在很多年了,一代二代到现在差不多十多年了快。
它拥有很多特性,比如双列表的交互性质,对一些操作提供便利。其中最特别的就是对apk的资源进行修改,例如dex,xml,arsc等,也有完整的十六进制编辑器等等功能,在文件管理器方面也是佼佼者
2.正则表达式:
2.1这常用说法来说就是对某个字节区块用特定符号组合进行匹配。
正则表达式(Regular Expression,简称 Regex 或 RegEx)是一种用于匹配字符串的强大工具。它允许你在文本中查找指定的模式,并且可以用来匹配、替换、分割文本字符串。正则表达式广泛应用于各种编程语言和工具中,用于数据验证、搜索和替换字符串、解析文本等任务。
教程:
这里主要介绍MT管理器的正则表达式复选框,如图:
以及
抛出一个问题给你们:如果某个目标需要知道,但是它是未知的,怎么高效率的得到结果?
你是会模糊搜索还是全局搜索,然后得到结果后一个个找寻?
那遇到某个特定情况呢?
这里用这个例子做介绍:
这里是java工程,那么我需要更改很多import应用的类的路径名比如:
android.zero.abcd.
那么常规来说一个两个类最直接方式就是搜索类名,比如abcdActivity
那相反过来呢?怎么搜索,这时候搜索android.zero.abcd,在大工程里可能就不只是android.zero.abcd一个包名了,可能就是android.zero.abcd,android.zero.abcd.efgh,android.zero.abcd.fhvc等等多级包名的结果不亚于在所有包里一个个翻寻某个类。
这时候最有效办法就是正则表达式。
根据自己需求以及场景去制定正则表达式符号组合也就是规则,首先正则表达式符号组合不一定全部都是固定形式。
看例子,
android.zero.abcd.(?:[a-zA-Z_][a-zA-Z0-9_]*)?
这里使用的是:(?:[a-zA-Z_][a-zA-Z0-9_]*)? 来匹配android.zero.abcd.后面的内容,其中包括了a到z的字母,0-9的数字等,也就是说匹配任意一个结果,可以得到很多搜索结果。
用android.zero.abcd.(?:[a-zA-Z_][a-zA-Z0-9_]*)?也可以再加上特定标识,比如:import android.zero.abcd.(?:[a-zA-Z_][a-zA-Z0-9_]*)?;或者android.zero.abcd.(?:[a-zA-Z_][a-zA-Z0-9_]*)?;,上面的import android的空格也可以用正则表达式符号代替
那么这一番折腾下来大概在某个类里就可以搜索到比如android.zero.abcd.MainActivity;诸如此类,其中MainActivity就是我们用正则表达式匹配得来的结果。
下面是对这组规则的简单解释:
1. **(?:)**:这是一个非捕获组(non-capturing group)。这意味着我们想定义一个组来进行匹配,但我们不需要记住这个组的内容。这在某些情况下很有用,比如当你想要应用一个量词或其他组操作到一个模式上,但又不想捕捉匹配的结果。
2. **[a-zA-Z_]**:这是一个字符集,匹配任何大写或小写字母(`a-z` 和 `A-Z`),以及下划线 `_`。这通常用来定义一个标识符的起始字符,因为在许多编程语言中,标识符通常是以字母或下划线开始。
3. **[a-zA-Z0-9_]***:这也是一个字符集,但它后面跟着一个星号 `*`。星号意味着前面的字符集可以出现零次或多次。这里的字符集包含所有大写字母、小写字母、数字(`0-9`)以及下划线 `_`。这个模式匹配任何由字母、数字或下划线组成的字符串。
4. **?**:最后的问号是对非捕获组应用的一个量词,表示该组可以出现零次或一次。换句话说,这个模式可以完全不存在(即为空字符串),或者符合上述模式。
综上所述,`(?:[a-zA-Z_][a-zA-Z0-9_]*)?` 这个正则表达式匹配以下情况:
- 完全不匹配任何东西(即匹配空字符串)。
- 以字母或下划线开始,并由零个或多个字母、数字或下划线组成的字符串。
更多正则表达式符号以及规则可以自行搜索:正则表达式,正则表达式符号表,正则表达式规则等等关键词,当然最快方式就是用ChatGPT来帮助你!
结语:当然,正则表达式不只是局限于MT管理器这一个应用程序的某个功能模块
我们只需要知道,什么场景,什么需求去用合适的规则来表达来匹配自己需要的未知结果
当然,再不嫌麻烦,喜欢动手那也可以做一个正则表达式的Python脚本来帮你检索某个结果 |
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|