作者:创世魂
● 帮助说明
本教程针对正则表达式各种操作进行了讲解说明。
本教程所有方法均位于“正则表达式支持”模块中。
● 编译
“编译”帮助文档:
通过“正则表达式文本”创建表达式对象,失败返回空对象。
注意:只有创建了当前“正则表达式类”对象后,才能对指定文本进行正则操作。
参数1:填写正则表达式文本,务必保证正确,否则会创建失败。
参数2:调用方式“正则匹配标志.XXX”,根据实际需求填写匹配标志即可。
“正则分割”帮助文档:
通过“编译()”方法创建的正则对象调用本方法,即可实现正则分割,返回分割后的文本数组。
参数1:动态调用时忽略本参数。
参数2:填写要分割的文本。
参数3:填写0表示匹配全部,否则代表匹配次数。
代码编写如下图:
1、定义类型为“正则表达式类”变量,勾选参考。调用“编译()”方法赋值给此变量。
2、参数中填写“[\u4e00-\u9fa5]+”表示匹配中文。
3、 通过“正则对象”调用“正则分割()”方法,分割带有中文的字符串,赋值给定义的文本数组变量。
4、 最后通过“数组到文本()”方法,将其转换成文本显示在编辑框中。
运行结果如下图:
● 是否完全匹配
帮助文档如下图:
通过本方法可判断“正则表达式”是否能完全匹配“输入的文本”。
完全匹配返回真,否则返回假。
参数1:填写正则表达式文本。
参数2:填写要匹配的文本。
代码编写如下图:
1、调用“是否完全匹配()”方法赋值给定义的逻辑变量。
2、通过判断逻辑变量反馈对应结果。
运行结果如下图:
例程中的参数1的“正则表达式”的意思是匹配中文字符。
而参数2输入的字符中带有除中文外的其它字符,因此此处编辑框内容显示“有多余内容”。
● 表达式文本(读)
帮助文档如下图:
通过本读属性可读取“编译()”方法中输入的表达式文本。
代码编写如下图:
1、调用“编译()”方法,随便编译一个正则表达式。
2、调用“表达式文本”读属性,将编译的表达式文本取出,显示在编辑框中。
运行结果如下图:
● 创建匹配器
“创建匹配器”帮助文档:
通过本方法可创建正则表达式的匹配器对象,用于对指定文本进行匹配,返回正则匹配器对象。
参数1:提供正则表达式对象,动态调用时省略。
参数2:提供要匹配的文本。
注意:本方法必须调用“编译()”方法返回“正则表达式类”对象后才能调用本方法。
“全部替换”帮助文档:
本方法通过“创建匹配器()”方法返回匹配器对象后才能调用本方法。
作用是用来对匹配文本进行替换。
例如:匹配一串文本中所有的中文字符,调用本方法替换成“1”,最后所有的中文都将替换成“1”。
代码编写如下图:
1、调用“编译()”方法,编译一个正则表达式对象。
2、通过编译好的正则表达式对象,调用“创建匹配器()”方法,创建一个匹配器对象。
3、最后通过“匹配对象”调用“全部替换()”方法,赋值给编辑框1的内容。
运行效果如下图:
指定文本字符串的所有中文字符都将替换成指定文本。
● 从区域首查找
“从区域首查找”帮助文档:
顾名思义,如果未指定限定区域,则从指定文本的首部开始查找。
找到返回真,未找到返回假。
“取匹配文本段”帮助文档:
通过本方法可取出找到的文本。
代码编写如下图:
1、通过“编译()”方法创建正则表达式对象。
2、调用“创建匹配器()”方法创建指定文本的匹配对象。
3、判断“从区域首查找()”方法的返回值是否等于真,如果等于则调用“取匹配文本段()”取出匹配文本。
运行结果如下图:
● 从指定位置查找
帮助文档如下图:
顾名思义,从指定文本开始匹配。
返回真表示找到匹配文本,返回假表示没有找到。
代码编写如下图:
在“从区域首查找()”方法代码基础上修改成本方法,并填写一个索引参数即可。
运行结果如下图:
索引3的位置为字母“b”,因此返回“软”字。
● 取匹配文本段起始位置
帮助文档如下图:
通过以上两个方法可以取出匹配文本的起始和结束位置。
注意:未处于匹配状态将会返回-1。
代码编写如下图:
1、调用“编译()”方法创建正则表达式对象。
2、调用“创建匹配器()”方法创建匹配器对象。
3、调用“从指定位置查找()”方法,开始匹配文本。
4、将找到的“起始和结束”位置显示在“编辑框1”中。
运行结果如下图:
索引值从0开始,因此匹配到第一个中文字符后,起始位置为“1”结束位置为“2”。
● 取子匹配组
帮助文档如下图:
当匹配文本成组出现时,通过本方法可取出组中的子文本。
索引值0:取出要匹配的文本。
索引值1:取出第一个子文本,剩下的以此类推。
注意:索引值必须“大于0”小于“子匹配组数”属性值。
代码编写如下图:
1、调用“编译()”方法创建正则表达式对象(注:“(.*?)”为通配符,匹配任意字符)。
2、调用“创建匹配器()”方法创建匹配器对象。
3、调用“从区域首查找()”方法,开始匹配文本。
4、最后调用“取子匹配组()”方法取出所有索引的子文本。
运行结果如下图:
● 取子匹配组起始位置
帮助文档如下图:
以上两个方法用于取出匹配组文本的“开始和结束”位置。
代码编写如下图:
在上一个方法的基础上增加以上两个方法即可。
运行结果如下图:
● 子匹配组数(读)
帮助文档如下图:
本读属性用于取出匹配组数(即匹配到的子文本数量)。
代码编写如下图:
1、编译正则表达式创建正则对象。
2、创建匹配器对象。
3、调用当前读属性取出自匹配组数。
运行结果如下图:
● 查找下一个
“查找下一个”帮助文档:
通过本方法可查找下一个文本匹配段,返回真表示找到了,否则返回假。
“已到文本尾”帮助文档:
通过本方法可判断当前匹配是否已经到了文本尾部,返回真表示达到尾部。
代码编写如下图:
1、创建表达式对象后创建匹配器对象。
2、调用“从指定位置查找()”方法,取出被匹配的文本。
3、虽然提供的匹配文本只有一个中文字符,但是仍然需要调用“查找下一个()”方法移动匹配位置。
4、最后调用“已到文本尾()”方法,判断是否到文本尾部。
运行结果如下图(GIF):
● 文本引用替换
帮助文档如下图:
本方法可将指定文本进行转义处理,返回处理后的文本。
代码编写如下图:
调用本方法对“$10”进行转义处理后显示在编辑框1中。
运行结果如下图:
● 替换首匹配文本
帮助文档如下图:
通过本方法可对匹配到的首个文本进行替换,替换成参数中的指定文本。
返回替换后的结果文本。
代码编写如下图:
1、创建正则表达式对象。
2、通过创建的正则对象,创建匹配器对象。
3、判断“从区域首查找()”方法的返回值是否等于真,然后调用“替换首匹配文本()”方法,进行文本替换。
运行结果如下图:
最后会将原文本中的“火”替换成“1”。
● 添加尾文本
帮助文档如下图:
本方法的作用就是将“创建匹配器()”方法中的“输入文本”添加到指定文本缓冲区的尾部。
添加后返回一个新的文本缓冲区对象。
代码编写如下图:
1、通过一个表达式文本创建正则对象。
2、通过正则对象创建匹配器。
3、定义类型为“安全文本缓冲区”的变量勾选参考,调用“创建安全文本缓冲区()”方法赋值给定义的变量。
4、再次定义一个类型为“安全文本缓冲区”的变量,勾选参考。
5、将“缓冲区”变量填写到“添加尾文本()”的参数中,并赋值给“缓冲区2”变量。
6、最后通过“缓冲区2”调用“取子文本2()”方法取出缓冲区中的文本,赋值给编辑框。
运行结果如下图:
● 添加替换文本
帮助文档如下图:
简单来说就是匹配到文本后,对匹配文本进行替换,并添加到文本缓冲对象中。
注意:当前匹配文本后面的文本不会添加到缓冲对象中。
例如:“123火abc”进行正则匹配中文,匹配到“火”替换成“山”,并添加到文本缓冲区中。
最终从文本缓冲区中取文本只会取出“123山”,“abc”并不会添加到文本缓冲区中。
代码编写如下图:
按照上述例如编写例程进行实践操作,针对“123火abc”进行匹配中文操作。
1、定义“正则匹配器类”变量,调用“编译().创建匹配器()”方法赋值给此变量,参数填写上述例如中的数据。
2、定义“安全文本缓冲区”变量,将此变量加入“添加替换文本()”方法的参数中,并且指定替换文本。
3、调用“文本缓冲.取子文本2()”方法取出缓冲区中的文本赋值给编辑框1的内容。
运行结果如下图:
如何实现将尾文本一起返回?
其实很简单,只需要利用“添加尾文本()”方法即可实现。
如下图所示:
运行结果如下图:
● 置表达式
帮助文档如下图:
顾名思义,通过本方法可重置正则表达式。
例如:表达式对象原为匹配中文字符,通过此方法可修改成匹配英文字母或者其它内容。
代码编写如下图:
1、编译表达式创建匹配器对象,匹配“输入文本”中的“中文字符”。
2、调用“置表达式()”方法重置表达式,匹配英文字母。
3、查找下一个后,调用“取匹配文本段()”方法取出匹配文本。
运行结果如下图:
● 重置
帮助文档如下图:
顾名思义,通过本方法会重置当前匹配状态。
下次调用“查找下一个()”时,会从头开始匹配。
代码编写如下图:
1、创建表达式匹配中文。
2、匹配两次后调用“重置()”方法,再次匹配会从头开始。
运行结果如下图:
● 重置2
帮助文档如下图:
本方法和“重置()”不同之处在于,本方法可以重置“输入文本”。
代码编写如下图:
将“重置()”方法修改为“重置2()”并填写参数即可。
运行结果如下图:
● 重置限定区域
“重置限定区域”帮助文档:
通过本方法可以限定匹配区域。
参数2、3分别填写起始和结束位置,索引从0开始。
“限定区域起始/结束位置(读)”帮助文档:
以上两个读属性,可以读取限定区域起始和结束位置。
代码编写如下图:
1、创建正则表达式匹配中文。
2、调用“重置限定区域()”方法,限定匹配区域。
3、查找下一个取出匹配文本和限定区域的起始/结束位置。
运行结果如下图: