- 浏览: 1428669 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (564)
- 算法 (7)
- 流金岁月 (1)
- Javascript (30)
- actionscript (108)
- as3.0 game (14)
- flex (84)
- fms2 (27)
- 正则表达式 (7)
- 开源组件代码(as3.0) (1)
- Pv3d (13)
- Cairngorm (4)
- vbs (54)
- VB程序设计 (26)
- 计算机应用与维护 (4)
- 职场实用穿衣技巧 (3)
- 历史风云 (15)
- 淡泊明志,宁静致远 (12)
- 情感 (26)
- 杂谈 (41)
- 越南风 (14)
- DirectX (9)
- Dev-cpp (11)
- 回望百年 (2)
- 建站经验 (2)
- Python (24)
- 网络赚钱 (4)
- php (2)
- html (1)
- ob0短址网 (1)
- ob0.cn (1)
- wordpress (1)
- pandas logistic (1)
- haxe (1)
- opencv (1)
- 微信小程序 (3)
- vue (3)
- Flutter (1)
最新评论
-
GGGGeek:
第一个函数滚动监听不起作用,onPageScroll可以
微信小程序--搜索框滚动到顶部时悬浮 -
naomibyron:
解决办法:工具 -> 编译选项 -> 编译器 ...
dev-c++中编译含WINSOCK的代码出现错误的解决方法 -
haichuan11:
这个…… 代码不全真的是让人很憋屈的感觉啊
actionScript 3.0 图片裁剪及旋转 -
chenyw101:
老兄能留个QQ号吗?具体的我有些东西想请教下你
用VB制作网站登陆器 -
yantao1943:
貌似有点问题,只派发一次事件啊
使用ActionScript 2.0或ActionScript 3.0处理音频文件的提示点(cue
最近在用VB6解决一个网页解析的应用,涉及到了正则。如何在VB6中使用正则表达式,这个在MS网站上有介绍,不过介绍的不是很全面。下面结合MS网站的内容和搜索到的东西,自己汇总一下。
引用了Microsoft VBScript Regular Expressions 5.5 后就可以声明正则相关对象了。主要有三个对象:RegExp、MatchCollection、Match。
1. RegExp 这是VB使用正则表达式匹配模式的主要对象了。其提供的属性用于设置那些用来比较的传递给 RegExp 实例的字符串的模式。 其提供的方法以确定字符串是否与正则表达式的特定模式相匹配。
属性:
Pattern:一个字符串,用来定义正则表达式。
IgnoreCase:一个布尔值属性,指示是否必须对一个字符串中的所有可能的匹配进行正则表达式测试。这是MS的解释,有点费解,实际使用中的实例是,如果True,则忽略英文字母大小的匹配,False对大小写进行匹配。
Global:设置一个布尔值或返回一个布尔值,该布尔值指示一个模式是必须匹配整个搜索字符串中的所有搜索项还是只匹配第一个搜索项。
MultiLine:这个MS没有介绍。查了一下资料,设置一个布尔值或返回一个布尔值,是否在串的多行中搜索。如果允许匹配多行文本,则multiline为true,如果搜索必须在换行时停止,则为false 。方法:
Execute:返回一个 MatchCollection 对象,该对象包含每个成功匹配的 Match 对象。
Replace:MS没有介绍,这是返回一个将匹配字符替换为指定字符的字符串。
Test:返回一个布尔值,该值指示正则表达式是否与字符串成功匹配。
2. MatchCollection 是集合对象,包含有关匹配字符串的信息,该对象包含每个成功匹配的 Match 对象。
属性
Count:匹配对象的总数。
Item:匹配对象的索引。
3. Match 是成功匹配的对象。
属性:
FirstIndex:匹配对象所匹配字符串的起始位置。
Length:匹配对象所匹配字符串的字符长度。
SubMatches:匹配对象所匹配结果的子项。
Value:匹配对象所匹配的值。
相关示例参照MS的网站:http://support.microsoft.com/kb/818802/zh-cn。MS上没有介绍的几个属性和方法的使用,见下面的几个简单示例:1. RegExp的Test方法:
1. RegExp的Test方法:
Function bTest(ByVal s As String, ByVal p As String) As Boolean
Dim re As RegExp
Set re = New RegExp
re.IgnoreCase = False '设置是否匹配大小写
re.Pattern = p
bTest = re.Test(s)
End Function
Private Sub Command1_Click()
Dim s As String
Dim p As String
s = "我的邮箱: test@163.com 。欢迎致电!"
'测试字符串中是否包含数字:
p = "\d+"
MsgBox bTest(s, p)
'测试字符串中是否全是由数字组成:
p = "^\d+$"
MsgBox bTest(s, p)
'测试字符串中是否有大写字母:
p = "[A-Z]+"
MsgBox bTest(s, p)
End Sub
2. RegExp的Replace方法:
Function StrReplace(s As String, p As String, r As String) As String
Dim re As RegExp
Set re = New RegExp
re.IgnoreCase = True
re.Global = True
re.Pattern = p
StrReplace = re.Replace(s, r)
End Function
Private Sub Command2_Click()
Dim s As String '字符串
Dim p As String '正则表达式
Dim r As String '要替换的字符串
'以下代码是替换邮箱地址
s = "我的E-mail: Test@163.com 。欢迎致电!"
p = "w+@w+.w+"
r = "E_Mail@sohu.net"
s = StrReplace(s, p, r)
Debug.Print s
'结果:我的E-mail: E_Mail@sohu.net 。欢迎致电!
End Sub
3. Match的SubMatches属性:
Private Sub Command3_Click()
Dim re As RegExp
Dim mh As Match
Dim mhs As MatchCollection
Dim inpStr As String
inpStr = "我的E-mail: lucky@163.com 。欢迎致电!"
Set re = New RegExp
re.Pattern = "(w+)@(w+).(w+)" '同样是匹配地址,注意和上例的不同
Set mhs = re.Execute(inpStr)
Set mh = mhs(0) '只有一个匹配
Debug.Print "电子邮件地址是: " & mh.Value '这里是匹配的内容
Debug.Print "用户名是: " & mh.SubMatches(0) '第一个括号中的内容
Debug.Print "邮箱是: " & mh.SubMatches(1) '第二个括号中的内容
Debug.Print "域名是: " & mh.SubMatches(2) '第三个括号中的内容
End Sub
发表评论
-
wxpython学习笔记
2011-01-13 21:21 1986出处:http://www.cnblogs.com ... -
ADO编程实用宝典
2009-05-08 13:05 1439目录 ADO编程实用宝典 目录 一引入A ... -
创建ACCESS的存储过程
2008-09-11 22:52 4759在Access自身的帮助中看到了Create Procedu ... -
实现服务器端的多线程SOCKET Server
2008-09-11 16:45 3372实现服务器端的多线程SOCKET Server 想要实现 ... -
轻量级xml读写模块 tinyXML
2008-09-11 16:32 2853文档和使用例子: http://www.grinningl ... -
基于TinyXML的XML文档操作(部分测试代码)
2008-09-11 16:31 2394#include <stdio.h> #incl ... -
使用tinyxml类解析XML
2008-09-11 16:26 2411读取和设置xml配置文件是最常用的操作,试用了几个C++的XM ... -
用VB制作网站登陆器
2008-08-25 20:59 4053Private Sub Command1_Click() Wb ... -
vb+Webbrowser控件详解
2008-08-25 20:54 3256方法 说明 GoBack 相当 ... -
VB自动提交表单问题
2008-08-25 14:32 2430需要知道表单名称呢,比如 <Form name=&quo ... -
BBS灌水机脚本(vb scritp, telnet, bbs, sterm)
2008-08-16 11:32 2483'****************************** ... -
c++下载网页的代码,VC6.0编译通过
2008-05-30 19:21 3822#include <winsock2.h> ... -
【译】C/S 多线程Socket类
2008-05-30 19:16 1633Multi-threaded Client/Server So ... -
C++ Socket Class for Windows
2008-05-30 18:59 1606Here, I present the source c ... -
C++ socket程序
2008-05-30 17:58 11477C++ socket程序 下面是一个C++调用windows ... -
字符串提取
2008-05-05 11:24 1270Function bTest(ByVal s As Strin ... -
VB用正则表达式提取网页中的链接
2008-05-05 10:37 2855VBScript code Function getUrl ... -
利用VB提取HTML文件中的EMAIL地址
2008-05-05 09:53 1162电子邮件(EMAIL)是INTERNET上应用最广泛的一种服务 ... -
VB写一个IE插件
2008-05-04 18:20 2987Q: 就类似于3721的插件一样,当用户浏览我的网站的时候,提 ... -
破解VisualStudio2005(vs2005) 的180天限制
2008-04-19 11:53 4508中文版本的软件本身是正式版,但内置的序列号却是180天试用版的 ...
相关推荐
描述如何在Visual Basic 6.0开发工程中创建和使用正则表达式对象,里面有对相关控件操作的详细说明,并且有一个例子代码。
VB6.0正则表达式,希望对大家都有用,还很难学的。
vb正则表达式实例 根据输入的正则代码制作的正则表达式测试程序
VB 正则表达式 使用详解 VB 正则表达式 使用详解
对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误以及完成一些常见的任务,《正则表达式经典实例》给出了涉及基于C#、Java、JavaScript、Perl、PHP、Python、Ruby和VB.NET等编程语言的解决方案。...
从网上收录的一些JAVA及VB的一些正则表达式使用例子, 希望能对大家有帮助!
VB6使用正则表达式检测内容格式是否正确。示例代码可以检测IPV4地址格式是否正确、是否包含数据、是否全是数字、是否有大写字母,当然你也可以自己写正则表达式以实现自己的要求。
原创 用 VBScript 的正则表达式对象创建的 VB6 正则表达式类
我收集的正则表达式资料及验证工具,与大家共享!
本书对于如何使用正则表达式来解决一些常见的问题给出了按部就班的解决方案,其中包括c#、Java、JavaScript、Perl、PHP、Python、Ruby和VB.NET的实例。 本书主要包括以下内容: 通过一个精练的教程理解正则...
各种正则表达式教程集合,js,VB,各种正则表达式教程集合
如今,正则表达式已经成为众多语言及工具——Perl、PHP、Java、Python、Ruby、MysQL、VB.NET和c#(以及.NET Framework中的任何语言)——中的标准特性,依靠它,你能以之前完全不敢设想的方式进行复杂而精巧的文本...
对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误以及完成一些常见的任务,本书给出了涉及基于C#、Java、JavaScript、Perl、PHP、Python、Ruby和VB.NET等编程语言的解决方案。 本书的读者对象是对...
任何有机会使用正则表达式的读者都将因《精通正则表达式(第3版)》而受益匪浅。 《精通正则表达式(第3版)》讲解正则表达式,这种工具能够提高工作效率、让生活变得更轻松。精心调校后的正则表达式只需要十多秒就能...
这是一个用来测试vb正则表达式的源码。大家做项目的时候应该经常要用到正则表达式测试程序吧。我测试了个.net的正则表达式,效果一样的。呵呵,看来正则表达式大部分是一样的啊。