加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 使用正则表达式执行方法在一个字符串中进行多个VB

发布时间:2020-12-14 06:30:30 所属栏目:百科 来源:网络整理
导读:我试图根据1.程度匹配各种职位的经验水平.2.经验年数.模式相当简单(例如:“BS / 5”将是具有5年经验的科学学士学位.我也有符合此方案的条目,但在同一个字符串中具有多个学位和经验水平(例如:“BS / 5-MS / 2“)被认为是等价的.我有一个基本的函数,它将匹配
我试图根据1.程度匹配各种职位的经验水平.2.经验年数.模式相当简单(例如:“BS / 5”将是具有5年经验的科学学士学位.我也有符合此方案的条目,但在同一个字符串中具有多个学位和经验水平(例如:“BS / 5-MS / 2“)被认为是等价的.我有一个基本的函数,它将匹配并找到子字符串模式,但它永远不会返回多个匹配,即使我已将.Global属性设置为true为regexp对象.任何想法?代码如下:
On Error Resume Next
ActiveWorkbook.VBProject.References.AddFromGuid "{3F4DACA7-160D-11D2-A8E9-00104B365C9F}",5,5

Dim theRegex As Object
Dim theString As String 

Set theRegex = CreateObject("VBScript.RegExp")

With regex
    .MultiLine = False
    .Global = True
    .IgnoreCase = False
End With

theRegex.Pattern = "([A-z][A-z][A-z]?/[0-9][0-9]?)"

theString = "MS/9-PhD/4"

Set MyMatches = theRegex.Execute(theString)

Debug.Print "SubMatches.Count: " & MyMatches.Item(0).SubMatches.Count

If MyMatches.Count <> 0 Then
        With MyMatches
            For myMatchCt = 0 To .Count - 1
                    Debug.Print "myMatchCt: " & myMatchCt
                    For subMtCt = 0 To .Item(subMtCt).SubMatches.Count - 1
                        Debug.Print "subMtCt: " & subMtCt
                        Debug.Print ("," & .Item(myMatchCt).SubMatches.Item(subMtCt))
                    Next
            Next
        End With
    Else
    Debug.Print "No Matches"
End If
尝试使用Regex更改线路

With theRegex
    .MultiLine = False
    .Global = True
    .IgnoreCase = False
End With

您的On Error resume next语句正在伪装错误.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读