[山海教程]LUA里面的正则-模式匹配(3)

 

现在越来越多的人都偏向于开发安卓按键精灵的脚本,对于安卓按键的命令需求也越来越多,有一些命令是按键本身不具备或者是不够完善,所以特此推出最强LUA插件-山海插件,以供同学们可以更好的开发自己的脚本。...





[山海插件教程-第二十一课]

LUA里面的正则—模式匹配(3)

插件的起源

      现在越来越多的人都偏向于开发安卓按键精灵的脚本,对于安卓按键的命令需求也越来越多,有一些命令是按键本身不具备或者是不够完善,所以特此推出最强LUA插件-山海插件,以供同学们可以更好的开发自己的脚本。



本节内容介绍

      通过之前两篇教程我们初步了解了lua模式匹配的一些使用方法,那今天的教程我们就来走进实战,给大家介绍下载分析表达式的时候常用的一些方法。

》》[山海教程]LUA里面的正则-模式匹配(1)

   》》[山海教程]LUA里面的正则-模式匹配(2)

例子分析
我们先来分析之前的例子:》》万中取一之正则匹配

首先,要从复杂的字符中提取特定文字,得对这字符进行初步的分析,我们先来把重要的部分单独拿出来看下:



1、提取关键信息

可以发现在这段字符里关键的部分是“社区"这个是我们要找的文字,"[360,74][506,138]"这个则是我们要提取出来的坐标。

这两个就是关键信息,就是我们需要提取或者使用到的信息,接下来就是要分析规律

2、找到关键信息的规律

要写表达式我们就得学会找关键信息的规律。通过查看图中的部分,很容易就能观察到关键信息的特征:

要找的文字的前面都是有跟着:“text=”这样的字符

要找的坐标的前面都是有跟着:“bounds=” 这样的字符

除了这两个关键的地方以外的其他字符,我们都用不到,我们就可以用表达式来替换掉。

3、替换表达式

我们找到了规律之后,来看下该如何写表达式。通过上一步的分析可以发现从“text=”开始到“bounds=”之间的这段字符我们完全不需要,所以我们就用模式匹配的表达式给代替掉。

那该用什么表达式呢?我们需要替换掉的是一连串的所有字符,所以我们可以用这种表达式:“ .+ ”。之前教程有说过了,点代表所有字符,而加号则代表匹配前一个字符多次。那这个表达式也就是用来匹配所有字符了!

那到了这一步,我们就可以把表达式写出来了:“text="社区".+bounds=[360,74][506,138]”

那这样就结束了吗?不!还差一点。我们要提取的信息是未知的,所以我们得要把这些未知的信息单独提取出来。

bounds=[360,74][506,138] 想要分别提取出坐标数字:bounds=%[(.-)%] %[(.-)%]

%[(.-)%] 这个就是用来提取中括号里的字符。在之前的教程里我们说过,中括号是代表了匹配一个集合,那如果想要匹配中括号本身这个字符的话就需要在前面加上一个%符号来转义。

而(.-)就表示匹配任意字符多次,和加号相比是会匹配尽可能短的串。

当然上面这个表达式我们也可以使用 bounds=%[([^%]])%]%[([^%]])%] 来代替。就当是留了作业,同学们可以自己思考下为什么可以用这个表达式来匹配。

有兴趣的同学可以自己练习下,如何将【山海插件和小Q讲堂目录索引】的标题内容提取出来
总结预告

看了这篇帖子之后,是不是对表达式的组合有了进一步的认识了呢?

本节内容就讲解到这里啦!如果大家有什么好的建议或者需要了解某个功能,可以留言哦!

如果大家想对插件有更多的了解,可以阅读原文进行查看哦!下节课内容预告:教你给免费小精灵做个日期限制
点击下方“阅读原文”获取更多山海插件命令介绍及下载

↓↓↓





    关注 按键精灵


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册