《易语言“正则表达式”详细教程》

上传人:枫** 文档编号:552583561 上传时间:2023-07-22 格式:DOCX 页数:45 大小:1,007.74KB
返回 下载 相关 举报
《易语言“正则表达式”详细教程》_第1页
第1页 / 共45页
《易语言“正则表达式”详细教程》_第2页
第2页 / 共45页
《易语言“正则表达式”详细教程》_第3页
第3页 / 共45页
《易语言“正则表达式”详细教程》_第4页
第4页 / 共45页
《易语言“正则表达式”详细教程》_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《《易语言“正则表达式”详细教程》》由会员分享,可在线阅读,更多相关《《易语言“正则表达式”详细教程》(45页珍藏版)》请在金锄头文库上搜索。

1、易语言“正则表达式”教程本文改编自多个文档,因此如有雷同,不是巧合。“正则表达式”的应用范围越来越广,有了这个强大的工具,我们可以做很 多事情,如搜索一句话中某个特定的数据,屏蔽掉一些非法贴子的发言,网页中 匹配特定数据,代码编辑框中字符的高亮等等,这都可以用正则表达式来完成。本书分为四个部分。第一部分介绍了易语言的正则表达式支持库,在这里,大家可以了解第一个 正则表达式的易语言程序写法,以及一个通用的小工具的制作。第二部分介绍了正则表达式的基本语法,大家可以用上述的小工具进行试验。 第三部分介绍了用易语言写的正则表达式工具的使用方法。这些工具是由易 语言用户提供的,有的工具还带有易语言源码。

2、他们是:monkeycz、零点飞越、 寻梦。第四部分介绍了正则表达式的高级技巧。目录易语言“正则表达式”教程1目录1第一章易语言正贝I表达式入门3一. 与DOS下的通配符类似3二. 初步了解正则表达式的规定3三. 一个速查列表4四. 正则表达式支持库的命令54.1第1个正则表达式程序54.2第2个正则表达式例程74.3第3个例程84.4 一个小型的正则工具9第二章揭开正则表达式的神秘面纱11引言12一. 正贝I表达式规贝I121.1普通字符121.2简单的转义字符131.3能够与“多种字符”匹配的表达式141.4自定义能够匹配“多种字符”的表达式161.5修饰匹配次数的特殊符号171.6其他一

3、些代表抽象意义的特殊符号20二. 正则表达式中的一些高级规则212.1匹配次数中的贪婪与非贪婪212.2反向引用1, 2232.3预搜索,不匹配;反向预搜索,不匹配24三. 其他通用规则25四. 其他提示27第三章正则表达式工具与实例28一. 正则表达式支持库291.1 “正则表达式”数据类型291.2 “搜索结果”数据类型30二. 正则表达式实用工具302.1 一个成品工具302.2易语言写的工具33三应用实例343.1 实例1343.2 实例2363.3 实例3373.4 实例437第四章正则表达式话题38引言38一. 表达式的递归匹配381. 1匹配未知层次的嵌套381.2匹配有限层次的

4、嵌套39二. 非贪婪匹配的效率402.1效率陷阱的产生402.2效率陷阱的避免41附录:42一.17种常用正则表达式42第一章易语言正则表达式入门一与DOS下的通配符类似其实,所谓的“正则表达式”是大家一直在使用的,记得吗?在搜索文件时, 会使用一种威力巨大的武器DOS通配符一一“?”和“*”这就是最常用的正 则表达式。例如:123.* 表示所有文件名为123的文件,如123. txt, 123.doc, 123.wps, 123.swf, 123.xls 等。“中国?.doc”表示所有文件名类似于 中国1.doc、中国2.doc、中国x.doc 这样的文件。上述DOS下的通配符用“?”号代表

5、一个字符,“*”号代表任意个字符,但在 正则表达式中,可能这些都有些改变。如*”号匹配的就不一样。下面看看正则 表达式是如何规定的吧。二初步了解正则表达式的规定正则表达式正是在“DOS通配符”基础上复杂化而得到的。其最常用的表达 式可能是:*匹配0或多个正好在它之前的那个字符。例如a*意味着能够匹配任意数量的a字符.匹配任何单个字符。例如r.t匹配这些字符串:rat、rut、r t,但是不 匹配root(等同于DOS通配符下的?号。)八匹配一行的开始。例如“When能够匹配字符串When in the course of human even ts的开始,但是不能匹配What and When

6、 in t he。$匹配行结束符。例如正则表达式weasel$能够匹配字符串Hes a weasel 的末尾,但是不能匹配字符串They are a bunch of weasels.。在这些字符中,可以使用.来表示,*表示* ,不过,这种情况出现 得很少,如果不能理解,可以暂时不理它,到用的时候就明白了。正则表达式还有一个强大的符号:,这个所括的内容,可以不按顺 序进行匹配。如abc 匹配 abc, acb, bac, bca, cab, cba 这 6 个文本0-9匹配任意0到9的数字a-z匹配所有小写字母A-Z匹配所有大写字母当然,你可以把它们混在一起写成a-z0-9 这种样子。很多时候

7、,我们需要检查文本中的非数字,我们就可以使用这个符号, 表示“除了”0-9匹配所有非数字文本a-zA-Z匹配所有非字母的文本FONT匹配所有不含FONT的文本三一个速查列表F面用一个表来表示:*前面元素出现0次以上匹配任何单个字符?前面元素出现0次或1次+前面元素出现1次以上X.表示开头。$表示结尾。.*表示0个以上的任意字符。范围描述符。a-z表示从a到z之间的任意 个。w英文字母和数字。即0-9 A-Z a-z。W非英文字母和数字s空字符,即tnrf。S非空字符。d数字,即0-9。D非数字。b词边界字符(在范围描述符外部时)B非词边界字符b退格符(0x08)(在范围描述符内部时)m, n前

8、面元素最少出现m次,最多出现n次1选择()群组其他字符该字符本身正则表达式支持库的命令基本的规则这些也就够了。下面将讲一讲易语言中正则表达式的数据类型和 几个相关命令,相关的数据类型有两个:正则表达式和搜索结果。如下图所示:数t式空达 部式 为本表 全模 建否文子配索换素行 创是取取匹搜替搜多 回0回回0回曰4.1第1个正则表达式程序新建一个易语言程序,界面设计如下图所示:按钮被单击事件代码如下:.局部变量正则表达式1,正则表达式正则表达式1.创建(“A.C”,假)窗口程序集容保留保留备注窗口程序集1子程序名返回值类型公开备注爭钮1 被单击编辑框2.内容二至【戊本(正则表达式1.匹配(编辑框1

9、.内容) 如下图所示:子程序名返回值类型公开备注爭钮1 一被单击变量名类型静态数组备注正则表达式1正则表达式正则表达式1 创逹d段)编辑框2.内容=到文本GE则表达式1.匹配離辑框1.内容H在这里,正则表达式1”是一个正则对象,使用“创建”方法建议了一个“A.C” 正则表达式,然后与编辑框1中的内容进行正则比较,最后得出结论。运行后,大家只要输入三个字符,前为A后为C都会返回真。如下图所示:但如果是小写或多于三个字符,那么返回就会是假。如下图所示:大家也许会问,这样匹配有意义吗?我只能说,有没有意义只在于你怎么用 了,如:可用于程序加密时,不采用判断语句,也不采用循环语句,而是用正则 去匹配是

10、否注册成功,以及可以进行程序名称的检查,程序中一些文字的检查等, 这可能让一些不会正则的破解者很难下手。4.2第2个正则表达式例程通过第一个正则程序,大家会了解正则匹配的重要性,也了解了易语言正则 支持库的基本使用方法,下面这个例程可以让大家了解正则会返回一些更多的内 容,大家如何去取回这些信息呢。下面改动上述程序中的一些代码为以下:.局部变量正则表达式1,正则表达式.局部变量搜索结果1,搜索结果,o正则表达式1.创建(“A.C”,假)搜索结果1二正则表达式1.搜索全部(编辑框1.内容)编辑框2内容二搜索结果1 1.取匹配文本(编辑框1内容,) 改动后如下所示:变量名类型静态数组备注正则表达式

11、1正则表达式搜索结果1搜索结果0正则表达式1.创逹(A. C ?段)搜素结果1二正则表达式1 搜素全部履辑框1.内容 編辑框2内容=搜索结果1 1.取匹配文本 備辑框1 内容,在这里,增加了一个搜索结果的对象,用这个对象接收正则表达式匹配的结 果,然后从中提取出大家想要的数据。上述易语言代码的运行结果如下图所示:改动上面编辑框的内容后,结果如下:这次是较为重要的一环,即我们知道了取回的内容。即由A和C包含的内容。 以及下面会论述到的位置信息。取回的包含的内容意义重大,如:可以取回一对 括号内的内容,这也是为了查找的方便。4.3第3个例程这次的工作任务是取一批文字中的所有字母与数字内容。按钮被单

12、击事件代码如下:.局部变量正则表达式1,正则表达式.局部变量搜索结果1,搜索结果,o局部变量 数组索引,整数型正则表达式1创建(“a-zO-9” + #换行符+ “”,假)中间的内容,就是要搜索的内容,可以是任意字符,包括换行、空格、 特殊符号但注意如果有字符,就表示除了,女abc表示除了 abc,现 在,我们给出的表达式意思是匹配含字母、数字、换行符的文本,后面那个假 意思是不区分大小写,你写成真也没有问题。搜索结果1二正则表达式1.搜索全部(编辑框1.内容)搜索结果是个数组,实际上存放的是字符串搜索后的各种参数,例如位置 等,可以用取匹配文本(,)方法将其取出,注意它的第一个参数必须和搜索

13、 全部()的参数一致编辑框2内容=“”计次循环首(取数组成员数(搜索结果1),数组索引)编辑框2加入文本(搜索结果1 数组索引取匹配文本(编辑框1内 容,)计次循环尾()图片如下所示:变量名类型静态数组备注正则表达式1正则表达式搜索结果1搜索结果0数组索引整数型正则表达式1创逹(“a-切-貂+犠行符+假)中间的内容,就是要搜索的内容,可以是任意字符,包括换行、空格、特殊符号.但注意 如果有字符就表示“除了 J如“、“表示“除了 现在,我们给出的表达式意思是匹 配含字母、数字.换行符的文本,后面那个“假“意思是不区分犬小写,你写成真也没有问题。搜索结果1 =正则表达式1.搜索全部 編辑框1.内容

14、搜索结果是于数组,实际上存放的是字符串搜索后的各种参数,例如位置等,可以用“取匹配 文本( )“方法将苴取出,注意它的第一于参数必须和“搜素全部()“的養数一顿編辑框2内容=5厂卜计次箱环首 陋数组成员数 醴索结果1,数组索引:编辑框2.加入文本 醴索结果1 数组索引取匹配文本 輪辑框1.内容,L-计次循环尾o运行后,大家可以在上面的编辑框中输入中文与字母数字的混合,点击按钮 后,就可以从中提取出字母与数字了。运行效果如下图所示:4.4 一个小型的正则工具在这里,大家将学会制作一个小型的正则表达式工具,使用这个工具进行下 面章节更加细致的学习。这个例程也可以在本书的随书光盘中找到。程序界面如下所示安排:按钮被单击事件的代码如下:.局部变量 正则表达式1,正则表达式.局部变量搜索结果1,搜索结果

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号