VB6.0如何使用正则表达式

转自放飞梦想

JK Zhang 的专栏

引用了Microsoft VBScript Regular Expressions 5.5 后就可以声明正则相关对象了。主要有三个对象:RegExp、MatchCollection、Match。

VBA 中使用正则表达式

  

RegExp

这是VB使用正则表达式匹配模式的主要对象了。其提供的属性用于设置那些用来比较的传递给 RegExp 实例的字符串的模式。 其提供的方法以确定字符串是否与正则表达式的特定模式相匹配。

属性

Pattern:一个字符串,用来定义正则表达式。

IgnoreCase:一个布尔值属性,指示是否必须对一个字符串中的所有可能的匹配进行正则表达式测试。这是MS的解释,有点费解,实际使用中的实例是,如果True,则忽略英文字母大小的匹配,False对大小写进行匹配。

Global:设置一个布尔值或返回一个布尔值,该布尔值指示一个模式是必须匹配整个搜索字符串中的所有搜索项还是只匹配第一个搜索项。

MultiLine:这个MS没有介绍。查了一下资料,设置一个布尔值或返回一个布尔值,是否在串的多行中搜索。如果允许匹配多行文本,则multilinetrue,如果搜索必须在换行时停止,则为false

方法

Execute:返回一个 MatchCollection 对象,该对象包含每个成功匹配的 Match 对象。

ReplaceMS没有介绍,这是返回一个将匹配字符替换为指定字符的字符串。
Test:返回一个布尔值,该值指示正则表达式是否与字符串成功匹配。

 RegExp的Test方法

RegExp的Replace方法

正则测试工具简介 正则测试工具顾名思义是用于正则表达式测试的工具,当然也可以做为日常一般数据处理工具,对正则数量的话这个工具可以给你带来极大的便利。有时我们经常需要对html页面源代码进行数据过滤分析,所以工具提供了直接采集html的功能。输入网址,然后点击后面的按钮采集得到html。接着就在下面输入正则表达式,点击下面按钮处理检索结果。 正则表达式学习请打开文件夹里的“Microsoft Windows 脚本技术.chm”,依次展开树“Windows 脚本技术 - VBScript - 正则表达式简介”,认真学习吧,需要耐心和不停的试验,学好了绝对是一把利器。我以前学习都要写vb代码来测试,现在大家可以直接使用这个软件来测试了。不过建议还是多写写代码代码有好处没坏处,加深印象。 界面上所有按钮对应的功能: 【下载代码】下载前面url的页面源代码,可在设置里设置采集页面代码的Charset模式 【完全匹配】测试字符串是否和内容匹配,对应正则对象的test方法,返回True或者False 【检索结果】对表达式开始处理,输出所有匹配项目。默认是整个匹配结果和括号捕获匹配的子项都显示,要调整内容可以在“设置”里处理 【全部替换】就是正则表达式替换,对应正则对象的replace方法,比如将上面匹配的内容换成特定的字符,支持$1这样的捕获。 【设置】程序的一些参数都可以在这里设置。比如设置采集网页是否按utf8模式,显示结果是否只显示括号捕获内容,已经设置界面语言等。 特殊功能: 1.左键快速三击窗体空白处可以生成vb代码 2.双击网址处会变成红色,生成的代码会包含下载改网址的函数 3.双击替换按钮后的输入框会变成红色,生成的代码会包含正则替换的代码 4.点击网址、表达式、替换表达式输入框后的箭头会显示所有历史使用的网址或表达式 5.在数据处理区双击会显示出一个对话框,勾选删除回车或制表符,鼠标移开后生效 6.有时需要用到多次正则替换,那么可以一次写多个表达式,表达式之间用>NEXT>隔开 7.按快捷键CTRL+F可以调出搜索框,输入内容后按搜索按钮相关内容会被标记为红色 8.按快捷键CTRL+R可以调出常用正则库。双击选择表达式会自动填入到软件上 您自己可以打开软件旁边的reg.txt进行自行扩充或修改。注意格式,说明文字和后面必须用制表 符来隔开。如果是替换表达式,会涉及到表达式和替换后的内容,请用~~间隔开来。 针对上面的第6条专门举个多次过滤html代码的例子: 网 址:http://www.kujiang.com/read/book/2579/76288 表达式:<script.*?>[\s\S]*?</script>|<style.*?>[\s\S]*?</style>|<[^>]*?>|&[a-z]*?;>NEXT>[ \t]+>NEXT>([\r\n] ?)+ 替换表达式:>NEXT> >NEXT>\r\n 点击按钮“全部替换为”,你会得到很纯净的文字。 下面再提供一个采集双色球开奖号的范例: 网 址:http://datachart.500.com/ssq/history/history.shtml 表达式:<td>(\d{5})</td><td.*?>(\d\d)</td><td.*?>(\d\d)</td><td.*?>(\d\d)</td><td.*?>(\d\d)</td><td.*?>(\d\d)</td><td.*?>(\d\d)</td><td.*?>(\d\d)</td> 点击按钮“检索结果”,如果要结果好看点就在设置里把主匹配和行号显示都设为False sysdzw QQ: 171977759 邮箱: sysdzw@163.com http://hi.baidu.com/sysdzw 1:26 2011-01-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值