• vb正则表达式


    http://blog.csdn.net/vbman2003/article/details/1827135

    引用了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 对象。
    ReplaceMS没有介绍,这是返回一个将匹配字符替换为指定字符的字符串。
    Test返回一个布尔值,该值指示正则表达式是否与字符串成功匹配。

    2. MatchCollection 是集合对象,包含有关匹配字符串的信息,该对象包含每个成功匹配的 Match 对象。

    属性:
    Count
    :匹配对象的总数。
    Item:匹配对象的索引。

    3. Match 是成功匹配的对象。

    属性:
    FirstIndex
    :匹配对象所匹配字符串的起始位置。
    Length:匹配对象所匹配字符串的字符长度。
    SubMatches:匹配对象所匹配结果的子项。
    Value:匹配对象所匹配的值。

    Option Explicit
    
    '引用Microsoft VBScript Regular Expressions 5.5
    
    Function RegExpMatch(strPattern As String, strString As String, Optional strReplace As String = "") As String
    
        Dim objRegExp As RegExp
        Dim objMatch As Match
        Dim colMatches As MatchCollection
    
        Dim i%
    
        Set objRegExp = New RegExp
    
        objRegExp.Pattern = strPattern
        objRegExp.IgnoreCase = True    '大小写敏感
        objRegExp.Global = True    '全局匹配(多次匹配)
        
        ''''1、测试'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        If (objRegExp.Test(strString) = True) Then
        
            '''''2、匹配'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            Set colMatches = objRegExp.Execute(strString)
            Debug.Print "共几个匹配:", colMatches.Count
    
            For Each objMatch In colMatches   '获得匹配结果集
    
                Debug.Print "", "匹配位置: " & objMatch.FirstIndex
                Debug.Print "", "匹配的值: " & objMatch.Value
                
                Debug.Print "", "子匹配:" & objMatch.SubMatches.Count
                If objMatch.SubMatches.Count > 1 Then
                    For i = 0 To objMatch.SubMatches.Count - 1
                        Debug.Print "", "", objMatch.SubMatches(i)
                    Next
                End If
            Next
            
            '''''3、替换'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            RegExpMatch = objRegExp.Replace(strString, strReplace)
            Debug.Print RegExpMatch
            
        Else
            Debug.Print "String Matching Failed"
        End If
    End Function
    
    
    Private Sub Form_Load()
        Debug.Print RegExpMatch("(\w+)@(\w+).(\w+)", "xx@xx.net我的E-mail: xx@xx.com 。欢迎致电 xx@xx.net !", "<文明用语>")
    End Sub
  • 相关阅读:
    找出数组中最长的连续数字序列(JavaScript实现)
    从数组中选出和等于固定值的n个数(JavaScript实现)
    比较任意两个JSON串是否相等(比较对象是否相等)JAVA版
    freshcodecolor纯正则实现的在线代码着色(高亮)
    最新QQ强制聊天代码,同时可判断好友关系
    (转)spring异常抛出触发事务回滚策略
    (转)Java回收对象的标记 和 对象的二次标记过程
    (转)调用System.gc没有立即执行的解决方法
    java线程池与五种常用线程池策略使用与解析
    (转)Spring事务管理详解
  • 原文地址:https://www.cnblogs.com/mitang/p/3067126.html
Copyright © 2020-2023  润新知