我试图根据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语句正在伪装错误.
原文地址:https://www.jb51.cc/regex/357214.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。