`
hereson
  • 浏览: 1428669 次
  • 性别: 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

    描述如何在Visual Basic 6.0开发工程中创建和使用正则表达式对象,里面有对相关控件操作的详细说明,并且有一个例子代码。

    VB6.0正则表达式

    VB6.0正则表达式,希望对大家都有用,还很难学的。

    vb正则表达式实例(正则表达式测试程序)

    vb正则表达式实例 根据输入的正则代码制作的正则表达式测试程序

    VB 正则表达式 使用详解

    VB 正则表达式 使用详解 VB 正则表达式 使用详解

    正则表达式经典实例

    对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误以及完成一些常见的任务,《正则表达式经典实例》给出了涉及基于C#、Java、JavaScript、Perl、PHP、Python、Ruby和VB.NET等编程语言的解决方案。...

    JAVA及VB的一些正则表达式使用例子

    从网上收录的一些JAVA及VB的一些正则表达式使用例子, 希望能对大家有帮助!

    VB6使用正则表达式检测内容格式是否正确

    VB6使用正则表达式检测内容格式是否正确。示例代码可以检测IPV4地址格式是否正确、是否包含数据、是否全是数字、是否有大写字母,当然你也可以自己写正则表达式以实现自己的要求。

    VB6 正则表达式类

    原创 用 VBScript 的正则表达式对象创建的 VB6 正则表达式类

    vb+word正则表达式

    我收集的正则表达式资料及验证工具,与大家共享!

    《正则表达式经典实例》扫描版

    本书对于如何使用正则表达式来解决一些常见的问题给出了按部就班的解决方案,其中包括c#、Java、JavaScript、Perl、PHP、Python、Ruby和VB.NET的实例。  本书主要包括以下内容:  通过一个精练的教程理解正则...

    各种正则表达式教程集合

    各种正则表达式教程集合,js,VB,各种正则表达式教程集合

    精通正则表达式 中英文

    如今,正则表达式已经成为众多语言及工具——Perl、PHP、Java、Python、Ruby、MysQL、VB.NET和c#(以及.NET Framework中的任何语言)——中的标准特性,依靠它,你能以之前完全不敢设想的方式进行复杂而精巧的文本...

    正则表达式经典实例.pdf

    对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误以及完成一些常见的任务,本书给出了涉及基于C#、Java、JavaScript、Perl、PHP、Python、Ruby和VB.NET等编程语言的解决方案。  本书的读者对象是对...

    精通正则表达式(第三版)

    任何有机会使用正则表达式的读者都将因《精通正则表达式(第3版)》而受益匪浅。 《精通正则表达式(第3版)》讲解正则表达式,这种工具能够提高工作效率、让生活变得更轻松。精心调校后的正则表达式只需要十多秒就能...

    vb正则表达式测试器源码

    这是一个用来测试vb正则表达式的源码。大家做项目的时候应该经常要用到正则表达式测试程序吧。我测试了个.net的正则表达式,效果一样的。呵呵,看来正则表达式大部分是一样的啊。

Global site tag (gtag.js) - Google Analytics