`
hereson
  • 浏览: 1454470 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

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

阅读更多

最近在用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

分享到:
评论

相关推荐

    VB6.0 中正则表达式的使用.pdf

    这段代码详细展示了如何在VB6.0中使用正则表达式进行复杂的文本匹配操作,并且体现了正则表达式在字符串处理方面的强大功能和灵活性。通过对RegExp对象属性和方法的设置与调用,可以实现对字符串的高级搜索和替换...

    正则表达式VB

    本文将详细介绍如何在VB6.0中使用正则表达式,并通过具体的代码示例进行说明。 #### 二、准备工作 要在VB6.0中使用正则表达式,首先需要引用“Microsoft VBScript Regular Expressions 5.5”库。这可以通过在工程中...

    正则表达式测试

    VB6.0是微软公司推出的一种面向对象的可视化编程工具,它提供了对正则表达式的支持,允许开发者使用正则表达式进行复杂的文本操作。在VB6.0中,我们可以使用MS VBScript Regular Expressions 5.5库来实现正则表达式...

    VB6.0从一串字符中只提取数字

    VB6.0虽然不内建正则表达式支持,但可以通过引入Microsoft VBScript Regular Expressions 5.5库来实现。首先,在VB6的工程中添加引用,选择“工具”菜单 -> “引用”,然后勾选“Microsoft VBScript Regular ...

    正则表达式测试工具V1.0.0.exe

    使用VB6.0开发的正则表达式验证小工具,体积超小只有72KB. 支持 全局搜索 支持 大小写敏感匹配 支持 替换功能 这个是工具, 正则表达式的匹配与开发使用的语言无关。

    统计文本单词的个数,VB6.0源代码编写

    在VB6.0环境下,统计文本单词的个数是一项常见的编程任务,这涉及到字符串处理、正则表达式以及循环结构等基础知识。以下是对这个主题的详细讲解: 首先,我们需要了解VB6.0的基础知识。Visual Basic 6.0是微软公司...

    VB6.0源码,监控上网课程

    VB6.0可以使用字符串处理函数和正则表达式来解析这些信息,以便进一步分析和展示。 5. **用户界面设计**:VB6.0的集成开发环境(IDE)提供了直观的拖放界面设计工具,使开发者能快速构建用户界面。在这个课程监控...

    VB6.0编写的文本编辑器

    5. **查找与替换模块**:通过正则表达式或简单的字符串匹配实现文本的查找和替换功能。 6. **事件处理**:VB6.0中的事件驱动编程模型使得可以对用户的各种操作(如按键、点击按钮等)做出响应。 **VB6.0控件和编程...

    VB6.0制作应用——自动批量手机号凶吉查询

    VB6.0中的DOM(Document Object Model)模型或者正则表达式可以用来解析和提取所需信息。解析后的数据,如手机号的凶吉描述和得分,会被存储在程序内部的数据结构中,比如数组或集合,以便进一步处理和展示。 在...

    vb6.0调用webservice详解

    - Web Service返回的XML数据可能需要解析,这通常涉及到DOM或正则表达式等技术。 总的来说,VB6.0调用Web Service虽然比现代语言复杂,但仍然是可行的,关键在于理解和利用好代理类。随着技术的发展,现在更推荐...

    vb轻松获取计算机名,用户名 域名

    2. **正则表达式**:使用正则表达式进行匹配时,需要确保表达式的正确性,以避免误匹配。 3. **安全性和权限问题**:在编写涉及系统信息获取的脚本时,需要考虑到安全性和权限问题,尤其是在生产环境中运行这些脚本...

    常用网址查询系统,可以先网址增加到数据库中,需要时可以随时查询和复制(VB6.0源代码编写)

    4. **数据验证**:为了确保输入的网址格式正确,程序可能包含了URL验证机制,例如使用正则表达式。 5. **数据检索**:用户输入关键词后,系统需要能够快速匹配数据库中的记录。这可能涉及到数据库查询优化,如索引...

    打开rtf文件并统计字符程序(VB6.0代码编写)

    这涉及到对RTF格式的理解,通常需要使用正则表达式或者专门的RTF解析库来完成。 在VB6.0中,虽然没有内置的RTF解析器,但可以通过第三方库或者自定义函数来实现。一个简单的方法是使用`RichTextBox`控件,它可以...

    VB 编写删除子串过程

    虽然VB6不直接支持正则表达式,但VB.NET(Visual Basic .NET)版本中提供了`System.Text.RegularExpressions`命名空间,可以进行复杂的字符串匹配和替换。例如,删除所有非字母数字的字符: ```vbnet Imports ...

    Compilador_VB6.0:VB 6.0编译器和JFlex和JCup

    【文件名称列表】中的"Compilador_VB6.0-master"可能是一个项目仓库的名称,暗示了这是一个关于VB 6.0编译器的开源项目,可能包含了使用JFlex和JCup编写的源代码、配置文件以及相关的文档。通过研究这个项目,开发者...

    易语言代码转换VB代码

    "JW_创建正则表达式.ec"文件可能是易语言中用于处理正则表达式的代码,正则表达式是一种强大的文本处理工具,常用于字符串匹配、查找、替换等操作。在VB中,可以使用System.Text.RegularExpressions命名空间中的...

    身份证信息提取.rar

    在VB6.0中实现这样的功能,开发者可能使用了字符串处理、正则表达式或者特定的身份证号码算法来解析身份证号码。 描述中提到,“VB6.0源代码,可提取身份证所在地信息”,这暗示了这个程序能够根据身份证号码获取到...

    简谱播放程序 ZQ2023-2-10.rar

    - 如何读取和解析简谱文件的格式,这通常涉及到字符串处理和正则表达式。 - 如何将解析出的简谱信息转化为音乐播放指令。 - 如何利用VB6.0的多媒体组件播放音乐,并控制播放速度、音量等参数。 - 如何设计和实现用户...

Global site tag (gtag.js) - Google Analytics