HOW TO:在 Microsoft Visual Basic 6.0 中使用正则表达式

文章翻译 文章翻译
文章编号: 818802 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

本文分步介绍了如何创建正则表达式及如何使用正则表达式确定字符串是否匹配特定的模式。使用正则表达式,您可以方便地对字符串进行语法分析,并可将字符串与特定的模式进行匹配。如果您使用了 Microsoft VBScript Regular Expressions 5.5 库中的可用对象,则可以将一个字符串与一个特定的模式进行比较,使用一种模式替换另一种模式,或者只检索一个已格式化的字符串的某些部分。本文介绍了如何构造一种模式来对包含同一模式的多个实例的字符串进行分析。



要求


下面的列表介绍了推荐使用的硬件、软件、网络结构以及所需的 Service Pack:
  • Microsoft Visual Basic 6.0
本文假定您熟悉下列主题:
  • Visual Basic 6.0
  • 正则表达式语法


使用正则表达式匹配模式



在 Visual Basic 6.0 中,RegExp 对象使用正则表达式匹配模式。下面是 RegExp 提供的属性。这些属性用于设置那些用来比较传递给 RegExp 实例的字符串的模式。
  • Pattern:一个字符串,用来定义正则表达式。
  • IgnoreCase:一个布尔值属性,指示是否必须对一个字符串中的所有可能的匹配进行正则表达式测试。
  • Global:设置一个布尔值或返回一个布尔值,该布尔值指示一个模式是必须匹配整个搜索字符串中的所有搜索项还是只匹配第一个搜索项。
  • RegExp:提供以下方法以确定字符串是否与正则表达式的特定模式相匹配:
    • Test:返回一个布尔值,该值指示正则表达式是否与字符串成功匹配。
    • Execute:返回一个 MatchCollection 对象,该对象包含每个成功匹配的 Match 对象。
要将一个字符串与一个正则表达式匹配,请按照以下步骤操作:
  1. 使用“RegExp”对象的“Pattern”方法设置正则表达式。
  2. 获取该字符串以使用该模式进行检验。
  3. 将“RegExp”对象的“IgnoreCase”属性设置为 True
  4. 将您在第 2 步中获取的字符串作为一个参数传递给“RegExp”对象的“Execute”方法。
  5. 将“Execute”方法的返回值指定给“MatchCollection”对象。

    “MatchCollection”对象包含有关匹配字符串的信息。

注意 您还可以使用 Test 方法来检查字符串是否匹配特定的正则表达式。

分步示例

  1. 启动 Microsoft Visual Basic 6.0。
  2. 在“文件”菜单上,单击“新建项目”。
  3. 在“新建项目”对话框中,单击“Standard Exe”,然后单击“确定”。

    默认情况下将创建 Form1。
  4. 在“项目”菜单上单击“引用”。
  5. 双击“Microsoft VBScript Regular Expressions 5.5”,然后单击“确定”。
  6. 在工具箱中,双击“命令按钮”。

    默认情况下,“Command1”将添加到窗体中。
  7. 双击“Command1”以打开代码窗口。
  8. 将下面的代码粘贴到“Command1_Click”事件处理程序:
    MsgBox(TestRegExp("is.", "IS1 is2 IS3 is4"))
    注意 这个示例中将对照“IS1 is2 IS3 is4”字符串检查 is. 模式。您可以将句点这一特殊字符(.)用作通配符,这样,搜索模式就能够多匹配并多显示一个字符。如果您在搜索模式中添加两个句点,您会看到两个其他字符。如果您不使用任何句点,您只会看到搜索模式。
  9. 将以下函数添加到“Command1_click”事件处理程序后:
    Function TestRegExp(myPattern As String, myString As String)
       'Create objects.
       Dim objRegExp As RegExp
       Dim objMatch As Match
       Dim colMatches   As MatchCollection
       Dim RetStr As String
       
       ' Create a regular expression object.
       Set objRegExp = New RegExp
    
       'Set the pattern by using the Pattern property.
       objRegExp.Pattern = myPattern
    
       ' Set Case Insensitivity.
       objRegExp.IgnoreCase = True
    
       'Set global applicability.
       objRegExp.Global = True
    
       'Test whether the String can be compared.
       If (objRegExp.Test(myString) = True) Then
    
       'Get the matches.
        Set colMatches = objRegExp.Execute(myString)   ' Execute search.
    
        For Each objMatch In colMatches   ' Iterate Matches collection.
          RetStr = RetStr & "Match found at position "
          RetStr = RetStr & objMatch.FirstIndex & ". Match Value is '"
          RetStr = RetStr & objMatch.Value & "'." & vbCrLf
        Next
       Else
        RetStr = "String Matching Failed"
       End If
       TestRegExp = RetStr
    End Function
  10. 在“运行”菜单上,单击“启动”来运行该应用程序。
  11. 单击“Command1”。

    此时将出现一个消息框,该消息显示 IS1 is2 IS3 is4 字符串中的所有 is 匹配项。

参考

有关更多信息,请访问下面的 MSDN Web 站点:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/ab0766e1-7037-45ed-aa23-706f58358c0e.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/2380d458-3366-402b-996c-9363906a7353.asp

属性

文章编号: 818802 - 最后修改: 2006年7月12日 - 修订: 3.0
这篇文章中的信息适用于:
  • Microsoft Visual Basic 6.0 企业版
  • Microsoft Visual Basic 6.0 学习版
  • Microsoft Visual Basic 6.0 专业版
关键字:?
kbhowtomaster kbprogramming kbstring KB818802
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com