• 新浪微博:
  • 微信 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:03-18

按键精灵安卓版
立即下载

软件版本:3.3.6
软件大小:62.5M
更新时间:01-16

按键精灵iOS版
立即下载

软件版本:1.6.0
软件大小:29.2M
更新时间:07-29

最新企业版UiBot
立即下载

软件版本:3.3
软件大小:282M
更新时间:08-06

快捷导航

登录 后使用快捷导航
没有帐号? 注册

登录 注册
返回列表 12345678» / 9
发新话题 回复该主题

[教程心得] 【山海插件教程】LUA的正则——模式匹配(2) [复制链接]

1#
在上一篇中带大家初步的了解了lua的模式匹配,今天就让我们一起来进一步的去了解下模式匹配的表达式的实际应用

接下来介绍下模式匹配中会用到的一些符号:
>>>> 插件教程目录 <<<<

( ) 括号括号就是用来捕获你需要提取出来的内容。
在一个匹配表达式中可能有只有一小部分是你需要提取出来的,所以就需要把这部分单独的用括号包括起来,这样在使用命令的时候就会专门把这段内容提取出来
我们来看下一个范例:
  1. Import "shanhai.lua"
  2. //从字符串中单独提取出网络ip的地址
  3. Dim text = "网络ip来自:117.25.63.155,本地ip:192.168.1.1"
  4. dim RegexArr = shanhai.RegexFind(text,"网络ip来自:(%d+%.%d+%.%d+%.%d+)")
  5. For Each v In RegexArr
  6. TracePrint v
  7. Next
复制代码
我们具体的来看下匹配的表达式:网络ip来自:(%d+%.%d+%.%d+%.%d+)

在原字符串中网络的ip前面有个特征就是“网络ip来自:”, 所以在表达式中需要带上它,后面%d+%.%d+%.%d+%.%d+这段则是用来提取ip地址的,%d+ 在上一篇教程中已经说过了是用来提取数字的。

那这个 %. 又是什么意思呢?我们之前教程中说过,“ . ” 这个在模式匹配里代表着匹配所有字符,所以我们如果要想匹配字符串中的这个点的话,就必须要在这个符号前加上%,这样就表示把这个点当成是普通的字符来进行匹配,而不是特殊的字符。


最后的括号就表示我只把括号里的内容提取出来,其他的内容不要,所以“网络ip来自:(%d+%.%d+%.%d+%.%d+)” 这个表达式提取之后的内容就是“117.25.63.155”
有兴趣的同学可以自己试着看看吧括号给去掉之后是什么样的结果~~

[] 中括号中括号在表达式中表示匹配一个集合,里面的内容可以是一个单独的字符,也可以是一个范围。比如
[p] 这就表示匹配包含字母p的字符(其实也就是直接匹配字符p);
[psd] 这个就可以表示匹配包含字母p或者字母s或者字母d的字符;
[a-z] 这样就是范围匹配,范围开始-范围结束,范围中间使用“-”符号进行连接。这个就是表示匹配a到z的字母;[0-9] 这样表示匹配0到9的数字

[^] 中括号里加个“^” 符号就和刚才的[]相反。这个表示匹配中括号里的补集,也就是不匹配中括号内的字符或者字符集。[^p] 这样就表示不匹配字母p
范例:
  1. Import "shanhai.lua"

  2. Dim text = "sdfpppqwe"
  3. dim RegexArr = shanhai.RegexFind(text,"[^p]+")
  4. For Each v In RegexArr
  5. TracePrint v
  6. Next
复制代码
这样就是排除了字母p,匹配到了字母p以外其他的字符。

小括号和中括号是在模式匹配中很常用到的一些办法,大家要灵活的去应用他们的组合
  1. Import "shanhai.lua"

  2. Dim text = "提取:这里是想要提取的内容123456<这里是不想要提取的内容>"
  3. dim RegexArr = shanhai.RegexFind(text,"提取:([^<]+)")
  4. For Each v In RegexArr
  5. TracePrint v
  6. Next
复制代码
分析:([^<]+) 这个表达式的意思就是,提取非<的内容多次。也就是相当于从左边开始,直到遇到了<这个符号为止,把这段内容提取出来。

看了这篇帖子之后,是不是对表达式的组合有了进一步的认识了呢?我们会在下一篇的帖子里结合一些实际的提取,给大家讲解下一些常用的写表达式的技巧~~


最后编辑quitout 最后编辑于 2016-07-28 15:04:36
本主题由 管理员 青黛 于 2018/3/1 17:26:59 执行 审核帖子 操作
2#

前排支持。

承接各类脚本开发

有偿解决按键基础问题(可远程讲解)

寻6级作者分摊单子,无需任何押金,开发全程不经我手!


QQ:517216542

《征途2S》和《千军》全部功能完全免费的脚本 ↓


正式版》》
经典版》》
3#

看看支持

4#

前排支持支持支持 山海师最伟大的男人...

5#

fdds ;f; bfd

6#

【山海插件教程】LUA的正则——模式匹配(

[url=http://bbs.anji
7#

【山海插件教程】LUA的正则——模式匹配(2)修改

8#

===============================

9#

hgv是什么

10#

谢谢啊

11#

求看

12#

来个赞,

13#

阿萨德

蛋蛋接单 成就精品 qq:960964835
14#

RE:【山海插件教程】LUA的正则——模式匹配(2)修改
RE:【山海插件教程】LUA的正则——模式匹配(2)修改

15#

学习一下,好好学习一下,

16#

学习正则模式匹配2

17#

11111

18#

进来膜拜大大神

19#

给力,及时的东西。-

20#

进来膜拜大大神

发新话题 回复该主题