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

正则表达式学习要点:1.什么是正则表达式2.创建正则表达式3.获取控制4.常用的正则假设用户需要在HTML 表单中填写姓名、地址、出生日期等。
那么在将表单提交到服务器进一步处理前,JavaScript 程序会检查表单以确认用户确实输入了信息并且这些信息是符合要求的。
一.什么是正则表达式正则表达式(regular expression)是一个描述字符模式的对象。
ECMAScript 的RegExp 类表示正则表达式,而String 和RegExp 都定义了使用正则表达式进行强大的模式匹配和文本检索与替换的函数。
正则表达式主要用来验证客户端的输入数据。
用户填写完表单单击按钮之后,表单就会被发送到服务器,在服务器端通常会用PHP、 等服务器脚本对其进行进一步处理。
因为客户端验证,可以节约大量的服务器端的系统资源,并且提供更好的用户体验。
二.创建正则表达式创建正则表达式和创建字符串类似,创建正则表达式提供了两种方法,一种是采用new运算符,另一个是采用字面量方式。
1.两种创建方式var box = new RegExp('box'); //第一个参数字符串var box = new RegExp('box', 'ig'); //第二个参数可选模式修饰符模式修饰符的可选参数参数含义i 忽略大小写g 全局匹配m 多行匹配var box = /box/; //直接用两个反斜杠var box = /box/ig; //在第二个斜杠后面加上模式修饰符2.测试正则表达式RegExp 对象包含两个方法:test()和exec(),功能基本相似,用于测试字符串匹配。
test()方法在字符串中查找是否存在指定的正则表达式并返回布尔值,如果存在则返回true,不存在则返回false。
exec()方法也用于在字符串中查找指定正则表达式,如果exec()方法执行成功,则返回包含该查找字符串的相关信息数组。
正则表达式使用方法

正则表达式使用方法
正则表达式是一种用于匹配字符串模式的工具,可以用于文本搜索和替换、数据验证等多种场景。
在实际使用中,我们需要掌握一些基本的正则表达式语法,以及一些常用的表达式组合,才能更加高效地处理字符串。
下面介绍一些常见的正则表达式用法:
1. 匹配单个字符
- .:匹配任意一个字符(除换行符以外)
- []:匹配方括号内的任意一个字符
- [^]:匹配不在方括号内的任意一个字符
- d:匹配数字字符
- w:匹配字母、数字、下划线字符
- s:匹配空格、制表符、换行符等空白字符
2. 匹配重复字符
- *:匹配前面的字符重复0次或多次
- +:匹配前面的字符重复1次或多次
- ?:匹配前面的字符重复0次或1次
- {n}:匹配前面的字符重复n次
- {n,m}:匹配前面的字符重复n到m次
- {n,}:匹配前面的字符重复n次或更多次
3. 匹配位置
- ^:匹配字符串开头
- $:匹配字符串结尾
- b:匹配单词边界(字母、数字、下划线等字符与非单词字符之间的位置)
- B:匹配非单词边界
4. 匹配分组
- ():将表达式分组,可以在后面应用重复、替换等操作
- ?: 在分组中加入?,表示该分组不捕获匹配结果,只用于重复、替换等操作
5. 其他用法
- |:表示或,匹配两个表达式中的任意一个
- :转义符,用于匹配特殊字符(如.、*、?等)
- ()和$1:在替换操作中,用$1、$2等表示正则表达式中的分组结果,可以对匹配结果进行变换
总的来说,正则表达式是一种强大的文本处理工具,可以大大提高我们的工作效率。
当然,要想熟练掌握正则表达式,还需要不断练习,积累经验。
易语言正则匹配

易语言正则匹配正则表达式(RegularExpression,简写为Regex),又称正规表达式、正则表示式、正规表示法,是计算机科学中一种用来根据指定规则查找符合条件的字符串(包括文本与程序源代码),也是一种形式语言。
正则表达式在文本处理中具有灵活的特性,可以根据查找模式快速的进行在文本中搜索,同时也是一种表示形式,它使用特定的规则来描述所搜索的字符串的结构,从而让程序可以根据规则搜索需要的数据,因此,正则表达式可以说是一种较为强大的字符串搜索工具。
易语言中的正则表达式匹配,对比其他脚本语言有其独特之处,在一定程度上减少了获取特定字符串的工作量。
下面就来介绍如何使用易语言中的正则表达式来进行内容匹配:1、首先,定义以易语言为基础的正则表达式,易语言支持标准的正则表达式,以及一些特殊的语法结构,如:(a)符集:[ ],表示中括号内的每一个字符,比如:[abc]配a、b、c任意一个字符;(b)殊字符:,表示特殊字符,如:d配数字;w配字母、下划线、数字等;(c)词:{m,n},表示可以重复m到n次,例如:d{2,4}配2到4个数字;(d)择:|,表示或者,例如:(A|B)配A或者B;等等,还有其他一些特殊的语法结构,这里就不详细赘述了。
2、易语言中的正则表达式匹配,使用的是匹配函数RegExMatch,它的完整声明形式如下:RegExMatch(Str,Pattern,Start,Count)其中:Str要匹配的字符串;Pattern配所要使用的正则表达式;Start配开始位置;Count获取的匹配结果个数。
RegExMatch函数返回一个数组,元素个数由参数Count指定,数组元素中包含从字符串Str中找到的从位置Start开始的正则表达式Pattern匹配结果,比如:Str=This is a test.Pattern=w+Start=6Count=2这里,匹配的结果为:Array[0]=isArray[1]=a3、易语言中的正则表达式匹配也是支持反向引用的,反向引用指的是在正则表达式中,可以使用前面捕获的结果再次来进行比较匹配的功能,反向引用的使用格式为:umber,number代表之前捕获的结果的序号(序号从1开始),比如:Str=abcdefabcPattern=(w+)1这里,“(w+)”这个正则表达式中,匹配出结果为:Array[0]=abcdefabc表示w+匹配出的字符串为“abcdef”,而“1”表示从字符串末尾开始匹配(即反向引用),这里因为“1”引用的是之前捕获出的“abcdef”,所以最终匹配出结果为:Array[0]=abcdefabc以上就是易语言中正则表达式的基本用法,它的实用性可见一斑,比如可以用来过滤文本中的特殊字符;可以用来提取字符串中的特定格式;可以用来过滤掉内容中的垃圾数据等等,另外因为易语言中可以直接支持正则表达式,所以也可以说,在易语言中可以完成更加复杂的文本处理,比如转换字符串的格式,替换文本中的某些内容,删除文本中的空白字符等,充分挖掘易语言中的正则表达式,可以极大地提高文本处理的效率,也有助于程序的开发。
易语言 删除空白字符 正则

易语言删除空白字符正则删除空白字符在编程中是一项常见的操作。
空白字符包括空格、制表符、换行符等。
在易语言中,我们可以通过正则表达式来实现删除空白字符的功能。
我们需要明确一下需求,即删除空白字符。
空白字符在文本中往往是没有实际意义的,而且在一些情况下会影响到程序的正确运行。
因此,删除空白字符是一项非常有必要的操作。
接下来,我们可以使用易语言的正则表达式函数来实现删除空白字符。
具体的步骤如下:1. 定义一个字符串变量,用于存储待处理的文本。
2. 使用正则表达式函数,将文本中的空白字符替换为空字符串。
正则表达式的模式可以使用"\s"表示匹配任意空白字符。
3. 输出处理后的文本。
下面是一段示例代码,演示了如何使用正则表达式删除空白字符:```vb函数删除空白字符(文本:字符串) -> 字符串正则表达式.初始化()正则表达式.模式 = "\s"正则表达式.替换为 = ""返回正则表达式.替换(文本)结束函数变量待处理文本:字符串 = "这是一段带有空白字符的文本。
"变量处理后文本:字符串 = 删除空白字符(待处理文本)输出(处理后文本)```以上代码会输出处理后的文本,其中所有的空白字符都被删除了。
在实际应用中,删除空白字符往往是为了方便字符串的处理和解析。
例如,当我们从网页中提取文本内容时,往往需要先删除其中的空白字符,然后再进行进一步的处理。
需要注意的是,在删除空白字符的过程中,我们需要注意一些特殊情况的处理。
例如,如果文本中有特殊字符或者多余的空白字符,可能会导致正则表达式匹配错误。
因此,在实际应用中,我们需要根据具体情况进行适当的处理,以保证程序的正确性。
总结起来,删除空白字符是一项常见的编程操作,在易语言中可以使用正则表达式来实现。
通过删除空白字符,可以方便地处理和解析文本内容,提高程序的效率和可读性。
在实际应用中,我们需要根据具体情况进行适当的处理,以确保程序的正确性。
正则表达式30分钟入门教程——堪称网上能找到的最好的正则式入门教程

正则表达式30分钟⼊门教程——堪称⽹上能找到的最好的正则式⼊门教程本教程堪称⽹上能找到的最好正则表达式⼊门教程本⽂⽬标30分钟内让你明⽩正则表达式是什么,并对它有⼀些基本的了解,让你可以在⾃⼰的程序或⽹页⾥使⽤它。
如何使⽤本教程最重要的是——请给我30分钟,如果你没有使⽤正则表达式的经验,请不要试图在30秒内⼊门——除⾮你是超⼈ :)别被下⾯那些复杂的表达式吓倒,只要跟着我⼀步⼀步来,你会发现正则表达式其实并没有想像中的那么困难。
当然,如果你看完了这篇教程之后,发现⾃⼰明⽩了很多,却⼜⼏乎什么都记不得,那也是很正常的——我认为,没接触过正则表达式的⼈在看完这篇教程后,能把提到过的语法记住80%以上的可能性为零。
这⾥只是让你明⽩基本的原理,以后你还需要多练习,多使⽤,才能熟练掌握正则表达式。
除了作为⼊门教程之外,本⽂还试图成为可以在⽇常⼯作中使⽤的正则表达式语法参考⼿册。
就作者本⼈的经历来说,这个⽬标还是完成得不错的——你看,我⾃⼰也没能把所有的东西记下来,不是吗?⽂本格式约定:专业术语元字符/语法格式正则表达式正则表达式中的⼀部分(⽤于分析) 对其进⾏匹配的源字符串对正则表达式或其中⼀部分的说明本⽂右边有⼀些注释,主要是⽤来提供⼀些相关信息,或者给没有程序员背景的读者解释⼀些基本概念,通常可以忽略。
正则表达式到底是什么东西?字符是计算机软件处理⽂字时最基本的单位,可能是字母,数字,标点符号,空格,换⾏符,汉字等等。
字符串是0个或更多个字符的序列。
⽂本也就是⽂字,字符串。
说某个字符串匹配某个正则表达式,通常是指这个字符串⾥有⼀部分(或⼏部分分别)能满⾜表达式给出的条件。
在编写处理字符串的程序或⽹页时,经常会有查找符合某些复杂规则的字符串的需要。
正则表达式就是⽤于描述这些规则的⼯具。
换句话说,正则表达式就是记录⽂本规则的代码。
很可能你使⽤过Windows/Dos下⽤于⽂件查找的通配符(wildcard),也就是*和?。
详细解释正则表达式的匹配过程

详细解释正则表达式的匹配过程正则表达式啊,就像是一把神秘又厉害的魔法钥匙,能打开各种文本处理的大门。
那它的匹配过程呢,就像是一场有趣的寻宝游戏。
咱先从最基础的字符匹配说起。
比如说你有个正则表达式“a”,这就好比你在找宝藏的时候,只认准了一个小小的标记“a”。
当你面对一大段文本,就像是在一个堆满了各种东西的大仓库里,你就一个一个地看这些东西。
要是看到一个“a”,那就像找到了带有那个特定标记的小物件,匹配成功啦。
这时候,正则表达式这个魔法钥匙就像是一个特别单纯的寻宝小能手,只认这一个简单的标识。
再说说多个字符的匹配。
要是正则表达式是“abc”,那可就有点像找宝藏的时候,要找一个连着的小物件组合,必须是“a”后面接着“b”,再接着“c”才行。
你在仓库里找的时候,就得更仔细啦,眼睛要像扫描仪一样,得看到连续的这三个字符在一起,才能算找到宝藏。
这就像是寻宝路线变得更复杂了一点,不是单个的标识能满足的,得按照特定的顺序找到一串标识才行。
然后呢,有那种特殊字符的情况。
像“.”这个特殊字符,它就像是一个万能钥匙,能代表任何一个字符。
如果正则表达式是“a.c”,那在仓库里找的时候,只要看到“a”后面跟着任何一个字符,再接着是“c”,就匹配成功了。
这就好比你找宝藏的时候,中间那个东西不管是啥,只要前面是“a”后面是“c”就行,这个特殊字符给了匹配更多的灵活性,就像在寻宝规则里加了一个小宽松的条款。
还有像“*”这种符号呢。
比如说“a*”,这就像是在说“a”可以出现零次或者很多次。
就好比你找宝藏的时候,那个有“a”标记的小物件,可能一个都没有,也可能有一大堆堆在一起。
在文本里就是可能根本没有“a”,或者有好多连续的“a”都能匹配上。
这就像寻宝的时候,关于那个特定标记的东西数量要求变得很宽松,没有或者很多都可以。
再讲讲“+”号。
如果是“a+”的话,就表示“a”至少要出现一次。
这就像是找宝藏的时候,那个有“a”标记的小物件必须至少有一个,不能一个都没有。
易语言正则表达式简明教程

正则表达式(regular expression)前言正则表达式是烦琐的,但是强大的,学会之后的应用会让你除了提高效率外,会给你带来绝对的成就感。
只要认真去阅读这些资料,加上应用的时候进行一定的参考,掌握正则表达式不是问题。
索引1._引子2._正则表达式的历史3._正则表达式定义3.1_普通字符3.2_非打印字符3.3_特殊字符3.4_限定符3.5_定位符3.6_选择3.7_后向引用4._各种操作符的运算优先级5._全部符号解释6._部分例子7._正则表达式匹配规则7.1_基本模式匹配7.2_字符簇7.3_确定重复出现--------------------------------------------------------------------------------1. 引子目前,正则表达式已经在很多软件中得到广泛的应用,包括*nix(Linux, Unix等),HP 等操作系统,PHP,C#,Java等开发环境,以及很多的应用软件中,都可以看到正则表达式的影子。
正则表达式的使用,可以通过简单的办法来实现强大的功能。
为了简单有效而又不失强大,造成了正则表达式代码的难度较大,学习起来也不是很容易,所以需要付出一些努力才行,入门之后参照一定的参考,使用起来还是比较简单有效的。
例子: ^.+@.+\\..+$这样的代码曾经多次把我自己给吓退过。
可能很多人也是被这样的代码给吓跑的吧。
继续阅读本文将让你也可以自由应用这样的代码。
注意:这里的第7部分跟前面的内容看起来似乎有些重复,目的是把前面表格里的部分重新描述了一次,目的是让这些内容更容易理解。
2. 正则表达式的历史正则表达式的“祖先”可以一直上溯至对人类神经系统如何工作的早期研究。
Warren McCulloch 和 Walter Pitts 这两位神经生理学家研究出一种数学方式来描述这些神经网络。
1956 年, 一位叫 Stephen Kleene 的数学家在 McCulloch 和 Pitts 早期工作的基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。
正则表达式讲解

正则表达式讲解正则表达式,又称规则表达式,(Regular Expression,在代码中常简写为regex、regexp或RE),是一种文本模式,包括普通字符(例如,a到z之间的字母)和特殊字符(称为“元字符”),是计算机科学的一个概念。
正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。
它通常被用来检索、替换那些符合某个模式(规则)的文本。
许多程序设计语言都支持利用正则表达式进行字符串操作。
例如,在Perl中就内建了一个功能强大的正则表达式引擎。
正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开来的,后来在广泛运用于Scala、PHP、C#、Java、C++、Objective-c、Perl、Swift、VBScript、Javascript、Ruby以及Python等等。
正则表达式由普通字符以及特殊字符组成。
例如,“^a”匹配以字母“a”开头的字符串,“a”匹配以字母“a”结尾的字符串,“a”则只匹配整个由字母“a”组成的字符串。
正则表达式中的特殊字符包括:^匹配字符串的开头$匹配字符串的结尾.匹配任意字符,除了换行符**转义特殊字符[...]定义字符集[^...]定义反向字符集(不在该字符集内的字符)[a-z]定义范围字符集[0-9]定义范围字符集,相当于\d\d匹配任意十进制数字,相当于[0-9]\D匹配任意非数字字符,相当于[^0-9]\s匹配任意空白字符,相当于[\f\n\r\t\v]\S匹配任意非空白字符,相当于[^f\n\r\t\v]\w匹配任意字母数字字符,相当于[a-zA-Z0-9_]\W匹配任意非字母数字字符,相当于[^a-zA-Z0-9_]***** 匹配前面的子表达式零次或多次+匹配前面的子表达式一次或多次匹配前面的子表达式零次或一次{n}匹配前面的子表达式n次{n,}匹配前面的子表达式n次或更多次{n,m}匹配前面的子表达式至少n次,但不超过m次此外,还有一些特殊的量词,可以用来表示重复次数,例如:{n,m}表示匹配前面的字符至少n次,最多m次。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《易语言“正则表达式”教程》本文改编自多个文档,因此如有雷同,不是巧合。
“正则表达式”的应用范围越来越广,有了这个强大的工具,我们可以做很多事情,如搜索一句话中某个特定的数据,屏蔽掉一些非法贴子的发言,网页中匹配特定数据,代码编辑框中字符的高亮等等,这都可以用正则表达式来完成。
本书分为四个部分。
第一部分介绍了易语言的正则表达式支持库,在这里,大家可以了解第一个正则表达式的易语言程序写法,以及一个通用的小工具的制作。
第二部分介绍了正则表达式的基本语法,大家可以用上述的小工具进行试验。
第三部分介绍了用易语言写的正则表达式工具的使用方法。
这些工具是由易语言用户提供的,有的工具还带有易语言源码。
他们是:monkeycz、零点飞越、寻梦。
第四部分介绍了正则表达式的高级技巧。
目录《易语言“正则表达式”教程》 (1)目录 (1)第一章易语言正则表达式入门 (3)一.与DOS下的通配符类似 (3)二.初步了解正则表达式的规定 (3)三.一个速查列表 (4)四.正则表达式支持库的命令 (5)4.1第1个正则表达式程序 (5)4.2第2个正则表达式例程 (7)4.3第3个例程 (8)4.4一个小型的正则工具 (9)第二章揭开正则表达式的神秘面纱 (11)引言 (12)一.正则表达式规则 (12)1.1普通字符 (12)1.2简单的转义字符 (13)1.3能够与“多种字符”匹配的表达式 (14)1.4自定义能够匹配“多种字符”的表达式 (16)1.5修饰匹配次数的特殊符号 (17)1.6其他一些代表抽象意义的特殊符号 (20)二.正则表达式中的一些高级规则 (21)2.1匹配次数中的贪婪与非贪婪 (21)2.2反向引用\1,\2 (23)2.3预搜索,不匹配;反向预搜索,不匹配 (24)三.其他通用规则 (25)四.其他提示 (27)第三章正则表达式工具与实例 (28)一.正则表达式支持库 (29)1.1“正则表达式”数据类型 (29)1.2“搜索结果”数据类型 (30)二.正则表达式实用工具 (30)2.1一个成品工具 (30)2.2易语言写的工具 (33)三.应用实例 (34)3.1实例1 (34)3.2实例2 (36)3.3实例3 (37)3.4实例4 (37)第四章正则表达式话题 (38)引言 (38)一.表达式的递归匹配 (38)1.1匹配未知层次的嵌套 (38)1.2匹配有限层次的嵌套 (39)二.非贪婪匹配的效率 (40)2.1效率陷阱的产生 (40)2.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下的通配符用“?”号代表一个字符,“*”号代表任意个字符,但在正则表达式中,可能这些都有些改变。
如“*”号匹配的就不一样。
下面看看正则表达式是如何规定的吧。
二.初步了解正则表达式的规定正则表达式正是在“DOS通配符”基础上复杂化而得到的。
其最常用的表达式可能是:*匹配0或多个正好在它之前的那个字符。
例如a*意味着能够匹配任意数量的a字符.匹配任何单个字符。
例如r.t匹配这些字符串:rat、rut、r t,但是不匹配root(等同于DOS通配符下的?号。
)^匹配一行的开始。
例如^When能够匹配字符串"When in the course of human events"的开始,但是不能匹配"What and When in the"。
$匹配行结束符。
例如正则表达式weasel$能够匹配字符串"He's 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]这种样子。
很多时候,我们需要检查文本中的非数字,我们就可以使用^这个符号,表示“除了……”[^0-9]匹配所有非数字文本[^a-zA-Z]匹配所有非字母的文本[^FONT]匹配所有不含FONT的文本三.一个速查列表下面用一个表来表示:*前面元素出现0次以上.匹配任何单个字符?前面元素出现0次或1次+前面元素出现1次以上^表示开头。
$表示结尾。
.*表示0个以上的任意字符。
[]范围描述符。
[a-z]表示从a到z之间的任意一个。
\w英文字母和数字。
即[0-9A-Z a-z]。
\W非英文字母和数字\s空字符,即[\t\n\r\f]。
\S非空字符。
\d数字,即[0-9]。
\D非数字。
\b词边界字符(在范围描述符外部时)\B非词边界字符\b退格符(0x08)(在范围描述符内部时){m,n}前面元素最少出现m次,最多出现n次|选择()群组其他字符该字符本身四.正则表达式支持库的命令基本的规则这些也就够了。
下面将讲一讲易语言中正则表达式的数据类型和几个相关命令,相关的数据类型有两个:正则表达式和搜索结果。
如下图所示:4.1第1个正则表达式程序新建一个易语言程序,界面设计如下图所示:按钮被单击事件代码如下:.局部变量正则表达式1,正则表达式正则表达式1.创建(“A.C”,假)编辑框2.内容=到文本(正则表达式1.匹配(编辑框1.内容))如下图所示:在这里,“正则表达式1”是一个正则对象,使用“创建”方法建议了一个“A.C”正则表达式,然后与编辑框1中的内容进行正则比较,最后得出结论。
运行后,大家只要输入三个字符,前为A后为C都会返回真。
如下图所示:但如果是小写或多于三个字符,那么返回就会是假。
如下图所示:大家也许会问,这样匹配有意义吗?我只能说,有没有意义只在于你怎么用了,如:可用于程序加密时,不采用判断语句,也不采用循环语句,而是用正则去匹配是否注册成功,以及可以进行程序名称的检查,程序中一些文字的检查等,这可能让一些不会正则的破解者很难下手。
4.2第2个正则表达式例程通过第一个正则程序,大家会了解正则匹配的重要性,也了解了易语言正则支持库的基本使用方法,下面这个例程可以让大家了解正则会返回一些更多的内容,大家如何去取回这些信息呢。
下面改动上述程序中的一些代码为以下:.局部变量正则表达式1,正则表达式.局部变量搜索结果1,搜索结果,,"0"正则表达式1.创建(“A.C”,假)搜索结果1=正则表达式1.搜索全部(编辑框1.内容)编辑框2.内容=搜索结果1[1].取匹配文本(编辑框1.内容,)改动后如下所示:在这里,增加了一个搜索结果的对象,用这个对象接收正则表达式匹配的结果,然后从中提取出大家想要的数据。
上述易语言代码的运行结果如下图所示:改动上面编辑框的内容后,结果如下:这次是较为重要的一环,即我们知道了取回的内容。
即由A和C包含的内容。
以及下面会论述到的位置信息。
取回的包含的内容意义重大,如:可以取回一对括号内的内容,这也是为了查找的方便。
4.3第3个例程这次的工作任务是取一批文字中的所有字母与数字内容。
按钮被单击事件代码如下:.局部变量正则表达式1,正则表达式.局部变量搜索结果1,搜索结果,,"0".局部变量数组索引,整数型正则表达式1.创建(“[a-z0-9”+#换行符+“]”,假)'[]中间的内容,就是要搜索的内容,可以是任意字符,包括换行、空格、特殊符号.但注意如果有字符"^",就表示"除了",如"[^abc]"表示"除了abc",现在,我们给出的表达式意思是匹配含字母、数字、换行符的文本,后面那个"假"意思是不区分大小写,你写成真也没有问题。
搜索结果1=正则表达式1.搜索全部(编辑框1.内容)'搜索结果是个数组,实际上存放的是字符串搜索后的各种参数,例如位置等,可以用"取匹配文本(,)"方法将其取出,注意它的第一个参数必须和"搜索全部()"的参数一致编辑框2.内容=“”.计次循环首(取数组成员数(搜索结果1),数组索引)编辑框2.加入文本(搜索结果1[数组索引].取匹配文本(编辑框1.内容,)).计次循环尾()图片如下所示:运行后,大家可以在上面的编辑框中输入中文与字母数字的混合,点击按钮后,就可以从中提取出字母与数字了。
运行效果如下图所示:4.4一个小型的正则工具在这里,大家将学会制作一个小型的正则表达式工具,使用这个工具进行下面章节更加细致的学习。
这个例程也可以在本书的随书光盘中找到。
程序界面如下所示安排:按钮被单击事件的代码如下:.局部变量正则表达式1,正则表达式.局部变量搜索结果1,搜索结果,,"0".局部变量位置1,整数型正则表达式1.创建(组合框1.内容,假).如果真(正则表达式1.是否为空()=真)连续赋值(“”,编辑框A.内容,编辑框B.内容,编辑框C.内容,编辑框D.内容,编辑框2.内容)返回().如果真结束编辑框2.内容=到文本(正则表达式1.匹配(编辑框1.内容))搜索结果1=正则表达式1.搜索全部(编辑框1.内容).如果真(取数组下标(搜索结果1,)=0)连续赋值(“”,编辑框A.内容,编辑框B.内容,编辑框C.内容,编辑框D.内容,编辑框2.内容)返回().如果真结束编辑框A.内容=搜索结果1[1].取匹配文本(编辑框1.内容,位置1)编辑框B.内容=到文本(位置1)编辑框C.内容=到文本(位置1+取文本长度(编辑框A.内容))编辑框D.内容=到文本(取文本长度(编辑框A.内容))抓图如下:通过上述代码后,运行效果如下:上述是测试“匹配”方法中注释的内容:正则表达式.创建(“易语言4\.0(模块|支持库)?”)信息框(正则表达式.匹配(“易语言4.0支持库”),0,)在第二章中,大家会发现本书大量用到了这个小程序。